Angularjs 角度JS视图未正确更新

Angularjs 角度JS视图未正确更新,angularjs,javascript-framework,Angularjs,Javascript Framework,我有以下行动 ng click在我的视图->中,inturn调用了一个jQuery ajax函数,该函数在Qtip弹出窗口中显示jQuery Qtip->,我在元素->上有一个ng click,它执行$http post并有一些回调来更新$scope值 所以所有这些事情都正常发生了。但是,根据在最后阶段回调中所做的更改,更新不会反映在视图中 在我的视图中,我有一个“ng mousemove”函数。因此,每当我移动鼠标时,视图中的更新都会得到反映 我做错了什么?是因为角度和非角度之间的转换吗?有谁

我有以下行动

ng click在我的视图->中,inturn调用了一个jQuery ajax函数,该函数在Qtip弹出窗口中显示jQuery Qtip->,我在元素->上有一个ng click,它执行$http post并有一些回调来更新$scope值

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

在我的视图中,我有一个“ng mousemove”函数。因此,每当我移动鼠标时,视图中的更新都会得到反映


我做错了什么?是因为角度和非角度之间的转换吗?有谁能帮我解决这个问题吗?

你必须告诉angular Js,
$scope.$apply()
发生了一些变化

下面是一个关于原因的好博客:

,如下所述:

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

因此,如果您有一个jQuery代码

$('#myDiv').on('click', function() {
  // do stuff
  $scope.$apply();
});

在我的代码中,我只有调用角度函数的ng click。我在这个角度函数中执行jQuery.qtip()。该jQuery.qtip还在内部执行jQuery post以获取qtip的内容。但是在调用qtip()函数之后,当我尝试执行apply时,摘要已经在运行了。申请美元的正确地点是哪里?那不应该在qtip渲染后调用吗?一个有角度的书呆子告诉我使用
if(!$scope.$$phase)$scope.$apply()
此外,调用
$scope.$apply
最安全的方法是:
如果($scope.$root.$$phase!='$apply'&&$scope.$root.$$phase!='$digest'){$scope.$apply();}