Kub*_*lik 60 angularjs angularjs-service
是否可以在服务中设置一个$watch对象数组(我希望$watch声明本身在服务中)?
pko*_*rce 121
您可以通过$rootScope向该$watch方法注入和使用函数第一个参数来向该组监视添加任何表达式.伪代码:
$rootScope.$watch(function() {
return //value to be watched;
}, function watchCallback(newValue, oldValue) {
//react on value change here
});
Run Code Online (Sandbox Code Playgroud)
不要忘记方法的第三个布尔参数$watch.您需要指定true是否要深度监视整个对象以进行更改.
btm*_*tm1 15
服务本质上就像是班级和家庭方法.您可以设置一个方法,您可以从控制器调用该方法,该方法的参数是范围并应用监视表达式:
app.service('myservice',function(){
this.listen = function($scope) {
$scope.$watch(function(){return someScopeValue},function(){
//$scope.dosomestuff();
});
}
});
//your controller
function myCtrl($scope,myservice) {
$scope.listen = function() {
myservice.listen($scope);
}
//call your method
$scope.listen();
}
Run Code Online (Sandbox Code Playgroud)
更新:如果您尝试在服务中查看私有局部变量,请使用$ rootScope查看接受的答案.如果你试图在本地范围内观察一个$ scope变量而不是上面的最佳选择.他们正在实现两件截然不同的事情.
| 归档时间: |
|
| 查看次数: |
29268 次 |
| 最近记录: |