繁体   English   中英

如何将对象包装在angularjs服务中(并观察该对象的更改)?

[英]How do I wrap an object in an angularjs service (and watch this object for changes)?

我想知道如果该对象不是“角度的一部分”,我将如何去观察它的变化。 因此,例如,我有一个模块,可以将其命名为watchModule,该模块可在窗口中直接访问。 我现在正在做的事情(我确定是错误的,这就是为什么我要寻求帮助!)就是这样的事情

angular.module('test', [])
.factory('WatchModule', function(){
    return watchModule;
})

我遇到一个问题:

此对象(watchModule)在DOM就绪时实例化。 因此,当angularJS首次建立此服务时,它将返回undefined。 也许直接的结果是,定义对象后,angularJS不会继续更新。

我希望可以看到这样的对象。 我正在处理的项目是一个WebGL应用程序,对于某些东西成为angular的“成员”并没有太大的意义。 我只想看他们检索一些值。

Angular可以监视在根目录或某个控制器上附加到scope对象。 通过在摘要循环上调用功能,它也可以监视功能。

在您的情况下,这意味着如果您要监视watchModule ,则必须将其附加到作用域或创建一个包装它的函数。

$scope.watched=WatchModule;
   $scope.$watch('watched',function(newValue,oldValue) {
});

如果这不起作用,则可能是角度正在观察的参考不是您正在使用的参考。 如果要监视WatchModule的子属性,请传入一个额外的参数以将其视为true以确保对象相等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM