我想对一个指令进行单元测试,该指令将用户重定向到支持的社交login-url.
由于Karma不支持完整页面重新加载,我想改变location.href JavaScript对象的行为,将它接收的参数输出到具有特定ID的HTML元素,我很难做到这一点.
指示:
__app.directive('socialAuth', function(utils, authService, $location){
return{
restrict: 'A',
scope: false,
link: function(scope, elem, attrs){
elem.bind('click', function(){
utils.cleanSocialSearch();
if(attrs.checkbox == 'personal'){
scope.$apply(function(){
scope.model.personalShare[attrs.network] = true;
$location.search('personalShare', '1');
});
}
else if(attrs.checkbox == 'group'){
scope.$apply(function(){
var __index = attrs.checkbox + '_' + attrs.network;
scope.model.personalShare[__index] = true;
$location.search('groupShare', '1');
});
}
var callback = encodeURIComponent(window.location.href);
var loginUrl = utils.getBaseUrl() + '/social/login/' + attrs.network + '?success_url=' + callback;
location.href = loginUrl;
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
尝试模拟location.href对象进行测试(是的,我知道它不是函数):
var location = {//an attempt …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
$.ajax({
url: API + "item/" + item_id.replace('-',':'),
beforeSend: function(xhr){xhr.setRequestHeader('x-customer', customer);},
format: "json",
success: function( data ){
var template_name = data.source + settings.overlay_style;
$('#modal .modal-content').html(Handlebars.templates[template_name](data));
/* Handle missing avatars */
$('#modal-avatar-image').imagesLoaded()
.progress( function( instance, image ) {
if (!image.isLoaded) {
image.img.src = "/images/404_avatar.svg";
image.img.alt = "The avatar for this user could not be found. Showing placeholder";
image.img.title = "The avatar for this user could not be found. Showing plac eholder";
}
});
/* Handle missing main content */
$('.modal-img').imagesLoaded()
.progress( …Run Code Online (Sandbox Code Playgroud) 我正在使用我的Mac上的docker-compose正式使用WordPress Docker镜像(使用boot2docker).我需要进行一次性数据导入.我不知道该怎么做.如何将数据导入数据库容器?
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
volumes:
- .:/var/www/html/wp-content/themes/my-theme-name
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
Run Code Online (Sandbox Code Playgroud) "message":"OAuthException: (#200) Insufficient permission to post to target on behalf of the viewer","trace":"[]","code":0
在最近的Facebook维护操作之后,此消息开始随机出现.
我的用户在尝试共享其组时会产生此错误.
有什么想过如何解决这个问题?
这里最明显的解决方案将允许基于会话的身份验证,这在 Django REST Framework 中被认为是一种不好的做法。
所以我想出了一个简单的方法来在 cookie 中播放令牌,然后尝试从 cookie 中读取它,如果它在头中不存在(比如在使用我们 API 的 2 个不同域之间移动的情况)。
这是我写的代码
middleware.py
class WhiteLabelSessionMiddleware(MiddlewareMixin):
def process_request(self, request):
request_token = request.META.get('HTTP_AUTHORIZATION')
cookie_token = request.COOKIES.get(settings.WHITE_LABEL_COOKIE_NAME)
if cookie_token:
print(cookie_token)
if cookie_token and not request_token:
# must be assigned by reference
request.request.META['HTTP_AUTHORIZATION'] = cookie_token
def process_response(self, request, response):
request_token = request.META.get('HTTP_AUTHORIZATION')
cookie_token = request.COOKIES.get(settings.WHITE_LABEL_COOKIE_NAME)
if not cookie_token and request_token:
response.set_cookie(settings.WHITE_LABEL_COOKIE_NAME,
request_token,
max_age=settings.SESSION_COOKIE_AGE,
expires=settings.SESSION_COOKIE_AGE,
domain=settings.SESSION_COOKIE_DOMAIN,
secure=settings.SESSION_COOKIE_SECURE)
return response
Run Code Online (Sandbox Code Playgroud)
settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个强调问题的plunkr,也许是因为ng-repeat的来源是一个函数,我不确定,但到目前为止我已经尝试了一切以解决这个问题,并且无法管理.
plunkr:http://plnkr.co/edit/qQFsRM?p = preview
HTML
<html>
<head>
<script data-require="angular.js@1.2.0-rc1" data-semver="1.2.0-rc1" src="http://code.angularjs.org/1.2.0rc1/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app='myApp' ng-controller='mainCtrl'>
<ng-include src="'menu.html'">
</ng-include>
</html>
Run Code Online (Sandbox Code Playgroud)
脚本
var app = angular.module('myApp', []);
app.controller('mainCtrl', function($scope, $httpBackend){
$scope.model = {};
$scope.model.myJobs = {};
$scope.refreshJobs = function(){
}
});
app.controller('menuCtrl', function($scope){
$scope.model.locations = function(){
var loc = [];
loc[1] = 'Dublin';
loc[2] = 'Stockholm';
loc[3] = 'New Jersy';
$scope.model.selectedLocationDef = loc.indexOf('Dublin');
return loc;
}
$scope.model.selectedLocation = $scope.model.selectedLocationDef;
$scope.$watch('model.selectedLocation', function(location){
$scope.refreshJobs(location);
});
});
Run Code Online (Sandbox Code Playgroud) 我想为我的输入字段创建一个包装器,其中包含一个输入帮助工具提示.
我使用角度1.0.7,如果它是重要的.
我正在使用transclude:true,以及isolate范围,以便同时允许多个不同字段的错误,并仍然保持对外部$ scope的ng-model引用.
问题:
当我在input元素上使用this指令时,input元素不会克隆('Transclude')到指令模板中.
因此,我在DOM中获得了一个空的div元素,并带有ng-transclude属性.
plunk:http://plnkr.co/edit/vFB9ih6x2NBmwhAes3Qh?p = preview
码:
<input data-my-validate-input data-value-required="true" type="password" class="loginItem" placeholder="Password" name="password" data-ng-model="formData.password" data-display-name="Password">
Run Code Online (Sandbox Code Playgroud)
但是当我将这个输入元素包装在span或div中时,子输入元素被超越了,但是我没有在指令处获得对正确的外部ng-model(ctrl)的引用.
<span data-my-validate-input data-value-required="true" data-display-name="Password">
<input type="password" class="loginItem" placeholder="Password" name="password" data-ng-model="formData.password" >
</span>
Run Code Online (Sandbox Code Playgroud)
完整代码(链接函数内部的逻辑与问题无关,但我更喜欢发布我的完整代码)
directive('myValidateInput', function() {
return {
require: 'ngModel',
restrict: 'A',
transclude: true,
scope: {
displayName: '@',
valueRequired: '@',
maxLength: '@',
minLength: '@',
minLetters: '@',
minNumbers: '@'
},
template: '<div class="validationContainer">\
<div ng-transclude></div>\
<div class="input-help">\
<h4>{{fieldErrorDisplay}}</h4>\
<ul>\
<li data-ng-repeat="rule in requirementSpec" ng-class="rule.class">\
{{rule.msg}}\
</li>\ …Run Code Online (Sandbox Code Playgroud) 我是Yeoman工作流程的新手(今天开始使用Yeoman).我正在尝试安装grunt bower-install,以便自动化资产管理流程.
问题是,尽管事实上我遵循了文档中的指令到最后一个,但在尝试运行时grunt bower-install我得到了错误.
尝试从主DIR运行此命令时,错误如下:
oleg@ob:~$ !!
Running "bower-install:app" (bower-install) task
Verifying property bower-install.app.src exists in config...ERROR
>> Unable to process task.
Warning: Required config property "bower-install.app.src" missing. Use --force to continue.
Aborted due to warnings.
Execution Time (2014-01-20 10:17:47 UTC)
loading tasks 3ms ???????????????????????????????????????????? 25%
bower-install:app 8ms ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 67%
Total 12ms
Run Code Online (Sandbox Code Playgroud)
在进入app目录并再次运行命令后,我得到一个不同的错误:
oleg@ob:~/app$ grunt bower-install
Loading "gruntfile.js" tasks...ERROR
>> Error: Unable to read "package.json" file (Error code: ENOENT).
Warning: Task "bower-install" not found. Use --force …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用tor通过privoxy作为代理使用urllib2进行匿名访问.
系统信息:Ubuntu 14.04,最近从13.10升级到dist-upgrade.
这是我用于测试目的的一段代码:
import urllib2
def req(url):
proxy_support = urllib2.ProxyHandler({"http": "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
return opener.open(url).read()
print req('https://check.torproject.org')
Run Code Online (Sandbox Code Playgroud)
以上输出带有sorry, but you don't use Tor消息的页面.
至于我的配置:
的/ etc /符/的torrc
ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
#HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C
HashedControlPassword 16:B3B0BA631D41D6FE601488FC7A9A2E80AB7815580C1C78F2865F30F63B
Run Code Online (Sandbox Code Playgroud)
的/ etc/Privoxy的/配置
forward-socks5 / localhost:9050 .
Run Code Online (Sandbox Code Playgroud)
$ sudo netstat -ntap | grep tor 输出:
tcp 0 0 …Run Code Online (Sandbox Code Playgroud) 我有以下队列使用者类,它通过promises递归运行:
"use strict";
var queue = require("./queue"),
helpers = require("./helpers"),
vendors = require("../config/vendors"),
queueConf = require("../config/queue");
function Consumer() {
this.queue = new queue.TaskQueue();
this.currentItem = null;
this.port = null;
this.payload = null;
}
Consumer.prototype.payloadSuccessCb = function (data) {
this.payload = data;
this.run();
};
Consumer.prototype.failureCb = function (data) {
console.error(data);
throw new Error(data);
//TODO: Continue queue processing despite the error
};
Consumer.prototype.processItem = function (data) {
this.currentItem = data;
process.send("Proccess " + process.pid + " is processing item " + this.currentItem); …Run Code Online (Sandbox Code Playgroud) angularjs ×3
javascript ×2
python ×2
boot2docker ×1
bower ×1
cookies ×1
cross-domain ×1
django ×1
docker ×1
facebook ×1
gruntjs ×1
imagesloaded ×1
jasmine ×1
jquery ×1
karma-runner ×1
mocha.js ×1
mocking ×1
node.js ×1
sinon ×1
tor ×1
transclusion ×1
urllib2 ×1
yeoman ×1