17

我有以下动作

ng-click在我的视图中->这又调用了一个显示 jQuery Qtip的jQuery ajax函数->在 Qtip 弹出窗口中我有一个ng-click元素-> 它执行$http 发布并有一些回调来更新 $scope价值观

所以所有这些事情都在正常发生。但是根据最后阶段回调中所做的更改,更新并没有反映在视图中。

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

我在这里做错了什么?是因为有角度和无角度之间的过渡吗?谁能帮我解决这个问题?

4

2 回答 2

36

正如文档解释的那样:

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

所以如果你有一个

$('#myDiv').on('click', function() {
  // do stuff
  $scope.$apply();
});
于 2013-01-03T08:42:09.943 回答
4

你必须告诉 angular Js 有些东西已经改变了$scope.$apply()

这是一个很好的博客为什么:http ://www.yearofmoo.com/2012/10/more-angularjs-magic-to-supercharge-your-webapp.html#apply-digest-and-phase

于 2013-01-03T08:31:24.993 回答