Angular JS视图未正确更新

时间:2013-01-03 08:17:18

标签: angularjs javascript-framework

我有以下行动

在我的视图中

ng-click - > ,其中会调用显示jQuery Qtip的 jQuery ajax 函数 - > 在Qtip弹出窗口中,我在元素上有 ng-click - >执行 $ http帖子并有一些回调来更新$ scope值

所有这些事情都正确地发生了。但是根据最后阶段回调中的更改,更新不会反映在视图中。

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

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

2 个答案:

答案 0 :(得分:36)

正如docs所解释的那样:

  

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

所以如果你有像

这样的 jQuery代码
$('#myDiv').on('click', function() {
  // do stuff
  $scope.$apply();
});

答案 1 :(得分:4)

你必须告诉角度Js $scope.$apply()发生了什么变化。

以下是一篇很好的博客,内容为:http://www.yearofmoo.com/2012/10/more-angularjs-magic-to-supercharge-your-webapp.html#apply-digest-and-phase