PHP*_*Pst 9 javascript bind angularjs
以下控制器工作没有问题.
app.controller('foo', ['$scope',function ($scope) {
$scope.delete = function(){
bar($scope);
}
}]);
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法使其更清洁bind
:
app.controller('foo', ['$scope',function ($scope) {
$scope.delete = bar.bind(null, $scope);
}]);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个表单不能按预期工作,并且$scope
总是在绑定方法(bar
此处)中提供旧版本的$ scope ,即使在$ scope更改为引用不同的值之后也是如此.这有什么问题?
如果我不在bind
这里使用,还有什么选择?
aps*_*ers 10
我假设您的问题是您的绑定Util.bar
始终提供旧版本$scope
,即使$scope
已更改为引用不同的值.
bind
绑定值,而不是变量.您绑定的电流值$scope
来Util.bar
.另一方面,$scope
每次函数运行时,您的第一个样式会强制将标识符解析为值(或实际上是外部作用域变量记录).
如果要$scope
更改以引用完全不同的值,则必须使用第一个表单..bind(null, $scope)
将$scope
立即解析为值并永远使用该值,而第一个表单bind
将$scope
在每次函数运行时解析为值.