我正在这样做:
angular.element('body').injector().get("myService").somevar = true
我在其他地方抓住了它:
$scope.$watch( function () { return myService.somevar; }, function (somevar) {
console.log(somevar)
});
但是观察者不会触发,即使我通过控制台检查该值它实际上已经改变了
正如已经提到的,您需要使用$apply:
$apply() 用于从外部执行角度表达式
角度框架。 (例如,来自浏览器 DOM 事件,
setTimeout、XHR 或第三方库)。因为我们正在调用
我们需要执行适当范围生命周期的角度框架
异常处理,执行监视。
例如:
var element = angular.element(document.querySelector('body'));
var service = element.injector().get('myService');
var scope = element.scope();
scope.$apply(function () {
service.somevar = true;
});
Demo: http://plnkr.co/edit/Iy3CiRzDdxFTwVq68JWi?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)