Angular JS视图未正确更新

Sab*_*kar 17 javascript-framework angularjs

我有以下行动

在我的视图中点击- >其中inturn调用显示jQuery Qtip 的jQuery ajax函数- >在Qtip弹出窗口中,我有一个元素的ng-click - >执行$ http帖子并有一些回调来更新$ scope价值观.

所有这些事情都发生得恰到好处.但是根据最后阶段回调中的更改,更新不会反映在视图中.

我的视图中有"ng-mousemove"功能.因此,每当我移动鼠标时,视图中的更新都会被反映出来.

我在这做错了什么?是因为角度和非角度之间的过渡?任何人都可以帮我解决这个问题吗?

asg*_*oth 36

正如文档解释的那样:

$ apply()用于从角度框架外部以角度执行表达式.(例如,来自浏览器DOM事件,setTimeout,XHR或第三方库).因为我们正在调用角度框架,所以我们需要执行异常处理的适当范围生命周期,执行手表.

所以,如果你有一个类似的jQuery代码

$('#myDiv').on('click', function() {
  // do stuff
  $scope.$apply();
});
Run Code Online (Sandbox Code Playgroud)

  • 另外,调用`$ scope.$ apply`最安全的方法是:`if($ scope.$ root.$$ phase!='$ apply'&& $ scope.$ root.$$ phase!='$ digest '){$ scope.$ apply(); }` (2认同)