我有一个在菜单和页面其他元素之间使用的共享服务工厂。
angular.module('shared_service', []).
factory('Shared', function($scope){
var shared_service = {
something: 'something',
something_else: 'something_else'
};
//I want to watch something so I can change something_else
//$scope.$watch('shared_service.something', function(){
// something_else something_else + 1
//}
return shared_service;
});
我知道我可以将观察者附加到其他地方,比如 Controller 中,但对我来说,我觉得我应该把它放在这里。可以放在这里吗?
谢谢。
最佳答案
您可以从 $rootScope
中 $watch
,但我相信,因为它不在 Controller 中,所以您必须观察函数的返回值...类似这应该有效:
angular.module('shared_service', []).
factory('Shared', function($rootScope){
var shared_service = {
something: 'something',
something_else: 'something_else'
};
$rootScope.$watch(function() {
return shared_service.something;
}, function () {
shared_service.something_else = shared_service.something_else + 1;
});
return shared_service;
});
关于javascript - 工厂内的$watch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22737678/