Angularjs如何通过$ http

时间:2017-04-22 01:09:54

标签: javascript angularjs

我有两个指令。每个指令中的链接都有一个异步函数,如$httpngResource。我想单击按钮A以通过指令A从后端获取数据,然后更改指令B及其视图中的数据。

我尝试使用$boastcast的数据服务,因为大多数人都会在指令A和B之间共享数据,并使用$apply来更新视图。但我经常得到inprog错误。那么解决它的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

当你运行$scope.$apply时,这个错误就会发生。当您尝试手动运行已经运行的摘要循环时,将发生此异常

因此,在使用之前检查摘要是否正在运行

if(!$scope.$$phase) { $scope.$apply() }

答案 1 :(得分:0)

不要使用$ apply包装代码,而是尝试注入$ timeout并使用$ timeout包装代码。它将以安全的方式运行摘要循环,仅在循环未运行时才会运行。