在用户操作之后的某个时刻,我想使摘要发生,因此UI反映了支持它的数据模型的变化.
我有一个服务,在回调中执行一些更改(异步).
我理解$scope只有在控制器的上下文中才有意义.我可以通过表演$apply()来达到同样的效果$rootScope吗?
我看过检查$$phase或类似的代码与避免摘要错误相关,我应该执行哪些检查才能安全地触发摘要?
看到这个答案:在$ rootScope上运行$ apply与任何其他范围
您可以$rootScope.$apply()在控制器外部(即在服务中)调用以触发摘要循环.
或者,您可以考虑使用$broadcast并$on在需要刷新时向应用的其他部分发送通知.(请参阅了解Angular的$ scope和$ rootScope事件系统$ emit,$ broadcast和$ 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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4358 次 |
| 最近记录: |