如何在 angularjs 服务中包装对象(并观察此对象的更改)
How do I wrap an object in an angularjs service (and watch this object for changes)?
我想知道如果Javascript对象不是"角度的一部分",我将如何观察该对象的更改。例如,我有一个模块,我们称之为watchModule,可以直接在窗口中访问。我现在正在做的事情(我肯定是错的,这就是我寻求帮助的原因!)是这样的
angular.module('test', [])
.factory('WatchModule', function(){
return watchModule;
})
我遇到了一个问题:
这个对象(watchModule)在DOM ready上实例化。因此,当 angularJS 首次建立此服务时,它返回 undefined。也许作为这个的直接结果,angularJS在定义对象后不会继续更新。
我希望观看这样的物体是可能的。我正在做的项目是一个WebGL应用程序,对于某些东西来说,成为angular的"成员"并没有太大的意义。我宁愿观察它们以检索一些值。
Angular 可以监视附加到根或某个控制器上scope
的对象。它还可以通过在摘要周期中调用函数来监视函数。
在您的情况下,这意味着如果您想监视watchModule
则必须将其附加到范围或创建一个包装它的函数。
$scope.watched=WatchModule;
$scope.$watch('watched',function(newValue,oldValue) {
});
如果这不起作用,那么情况可能是角度正在监视的参考不是您正在使用的参考。如果要监视 WatchModule 的子属性,请传入一个额外的参数以作为对象相等的true
进行监视。
相关文章:
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- $scope$观察数组中的一个特定对象——Angular JS控制器
- 无法观察Ember.js中的对象数组
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串
- 培根.js Bus.plug: 未捕获 错误: 不是可观察的 : [对象对象]
- 使用rxjs创建一个可观察的对象,该对象稍后将连接到web套接字
- 将$scope对象作为参数提供给$digest中的观察者背后的逻辑
- Knockoutjs当父对象's可观察到的变化
- 在ko.applyBindings(..)中执行Knockout js订阅函数(用于可观察对象)
- 聚合物通过父对象观察子属性
- Knockoutjs观察嵌套对象并订阅更改
- Knockout.js用单个json对象绑定一个可观察对象
- 使用AngularJS观察整个对象(深度观察)
- 无限循环当观察父对象时,观察者不更新任何值
- 向KO传递在对象内可观察到的计算值
- 根据某些条件将 JS 绑定到可观察对象内的数组元素
- 如何从下拉列表中由可观察数组填充的选定项中检索完整对象
- 如何创建挖空可观察数组/对象的深层副本
- 对象.观察顺序
- 对象.观察同步回调