$scope.myFunc = function(privilege){
$scope.check = function(privilege){
return ...
};
$scope.$watch('check(privilege)',function(val){
...
}
}
我的权限变量在每次手表检查时都是未定义的(必须不是)?为什么我应该定义范围变量,或者我对Angular Js有什么想法?
答案 0 :(得分:6)
$watch方法的第一个参数(“watchExpression”)可以是Angular字符串表达式(根据$ scope计算),也可以是函数,使用$ scope作为第一个调用参数。无法将privilege
作为第一个参数传递给作为函数的watchExpression。
如果您不想在$ scope上存储privilege
值,则可以创建闭包。有关示例,请参阅Vojta's fiddle。
另请参阅https://groups.google.com/forum/#!msg/angular/UJRxn_Y0Dd4/9ha38PC3PCwJ