我最初在这里提出了这个问题,但我认为我已经领先于自己并使其变得比实际情况更复杂,所以我在这里重新提出一些更清晰的措辞.
如何使用指令和可重用参数创建可重用的窗体小部件?像这样:
<form>
<special-input label-text="A Special Input" bind-to="data.special"></special-input>
<special-input label-text="Specialer" bind-to="data.moreSpecial"></special-input>
</form>
Run Code Online (Sandbox Code Playgroud)
指令模板似乎不允许在ng-model上进行插值.
此外,您是否可以模块化和参数化表单行为,以便您可以进行标准的POST操作,例如?
我根据我的实验回答了下面的问题,但是我暂时不接受它,因为我对Angular很新,并希望听到其他人的意见.
我正在尝试创建一个指令,该指令将基于属性值将ngModel属性添加到标记.例如:
angular.module('myModule').
directive('myDirective', function() {
return {
link: function(scope, elem, attrs) {
var modelName = 'myPrefix.' + attrs.name;
attrs.$set('ngModel', modelName);
}
};
});
Run Code Online (Sandbox Code Playgroud)
这个html:
<input name="foo" my-directive></input>
Run Code Online (Sandbox Code Playgroud)
编译成
<input name="foo" ng-model="myPrefix.foo" my-directive></input>
Run Code Online (Sandbox Code Playgroud)
它接受输入的名称,附加前缀,并将ngModel属性设置为该值.
当我尝试在链接函数中执行此操作时,似乎input
没有使用formController注册,因此form.foo
返回undefined.
是否有可能完成我想要做的事情?
编辑:
看起来该ngModel
属性是在HTML上设置的,但它没有在表单中注册,或者没有实例化ngModelController.如果我查看范围中的值,则ngModel
在修改输入时它不会更改.
我试图get
在一系列函数调用中使用,但对象名称的查找似乎跳过了环境.例如:
foo <- 1 # variable in .GlobalEnv
getter <- function(x) {get(x)}
getter("foo") # returns 1, which is expected
f1 <- function() {
foo <- 2 # local variable in the function scope
getter("foo")
}
f1() # still returns 1, would've expected to return 2
Run Code Online (Sandbox Code Playgroud)
为什么调用会f1
返回foo
全局环境而不是foo
调用函数的环境?
我如何get
查看调用函数的环境?设置pos = sys.parent()
似乎不起作用.
如果我有这样的指示
JS:
app.controller('MyController', function($scope) {
this.someMethod = function() {
};
});
app.directive('myDirective', function() {
return {
scope: true
link: function(scope, elem, attrs, controller) {
controller.someMethod();
}
controller: 'MyController',
}
});
Run Code Online (Sandbox Code Playgroud)
我想创建一个Jasmine间谍以确保调用链接函数controller.someMethod
,但这不起作用:
规格:
var elem = angular.element('<div my-directive></div>');
var scope = $rootScope.new();
$compile(elem)(scope);
var ctrl = elem.controller('myDirective');
spyOn(ctrl, 'someFunc').andCallThrough();
Run Code Online (Sandbox Code Playgroud)
间谍创建得太晚,因为控制器已实例化并且$compile
语句中调用了链接函数.
还有哪些方法可以监视链接功能中发生的事情?是否可以预先实例化控制器并将其传递给$compile
?
我有一个脚本使用scikit-learn的并行功能(由joblib库实现).通常我会以更高的详细程度运行它,以便我可以监控进度:
grid = GridSearchCV(estimator, params, cv=5, n_jobs=4, verbose=50)
Run Code Online (Sandbox Code Playgroud)
使用普通的Python控制台时,来自Parallel
库的消息会在发生时打印到控制台,如下所示:
[Parallel(n_jobs=4)]: Done 4 jobs | elapsed: 32.8s
[Parallel(n_jobs=4)]: Done 2 jobs | elapsed: 33.7s
但是,当我在IPython笔记本中运行脚本时,看起来这些消息在作业运行时被缓冲,并且只有在它完成后才输出或我终止内核.
有没有办法让它在笔记本上实时显示?
我正在运行一个带有nginx的web服务器,接着是gunicorn用Celery运行一个Django应用程序.所有的枪炮工艺和芹菜工人都由主管管理.我的问题是,在为堆栈中的每个进程设置权限方面,最佳做法是什么?
目前我基本上遵循默认值,我很确定这里有一些不安全的部分:
哪些权限可以收紧,我需要哪些文件才能确保他们有权访问才能工作?
我有两个data.tables:
DT1 <- data.table(A=c('A', 'B', 'C'), idx=c(1,2,3))
DT2 <- data.table(idx=c(1,2,3), A=rep('foo', 3), B=rep('bar', 3), C=rep('baz', 3))
> DT1
A idx
1: A 1
2: B 2
3: C 3
> DT2
idx A B C
1: 1 foo bar baz
2: 2 foo bar baz
3: 3 foo bar baz
Run Code Online (Sandbox Code Playgroud)
我想谈谈这个问题:
> DT3
idx value
1: 1 foo
2: 2 bar
3: 3 baz
Run Code Online (Sandbox Code Playgroud)
基本上我想合并DT1
和DT2
打开idx
,但我只希望列中的列DT2
对应A
于行中的值DT1
.DT1和DT2具有相同的行数,并且行中的行数相同
有没有data.table本地方式来做到这一点?
angularjs ×3
r ×2
celery ×1
data.table ×1
forms ×1
gunicorn ×1
ipython ×1
jasmine ×1
javascript ×1
nginx ×1
scikit-learn ×1
scope ×1
security ×1
supervisord ×1
unit-testing ×1