在用户操作之后的某个时刻,我想使摘要发生,因此UI反映了支持它的数据模型的变化.
我有一个服务,在回调中执行一些更改(异步).
我知道$scope只在控制器的上下文中才有意义.我可以通过在$rootScope上执行$apply()来达到同样的效果吗?
解决方法
看到这个答案:
Running $apply on $rootScope vs any other scope
您可以在控制器外(即在服务中)调用$rootScope.$apply()以触发摘要循环.
或者,您可以考虑使用$broadcast和$on在需要刷新时向您的应用的其他部分发送通知. (见Understanding Angular’s $scope and $rootScope event system $emit,$broadcast and $on)
// in a service $rootScope.$broadcast('myCustomEvent',{ someProp: 'foobar' // other data }); // in a controller or another service $scope.$on('myCustomEvent',function (event,data) { console.log(data); // do something with this event });