【发布时间】:2016-06-15 11:20:37
【问题描述】:
我有一个角度应用程序myApp和一个服务myService,持有一个对象data,由两个控制器使用,parentCtrl 和childCtrl 后者继承自前者:https://jsfiddle.net/OleWahn/7ehLva10/2/
我通过$scope.data = myService.getData() 在parentCtrl 中引用data,这也使它可以从childCtrl 访问。
我在myService 的闭包中定义了data,因此$scope.data 只是对data 的引用。
因此,我可以在子控制器中更改data 的属性,并且每个人myService、parentCrl 和childCtrl 都会知道这些更改。到目前为止,一切顺利。
我的问题如下:如果我想覆盖整个data 对象,我在childCtrl 中调用myServices 方法setData。
再次提醒大家,data 已更改。
$scope.data 但是仍然指向最初定义的对象,myService 不会通知 data 已更改,这将是我的最后一个问题:
有没有办法自动更新对服务中定义的对象的范围引用?
【问题讨论】:
标签: javascript angularjs angularjs-scope angularjs-service