Angular JS views not updating properly

大憨熊 提交于 2019-12-04 10:09:11

问题


I have the following action

ng-click in my view -> which inturn calls a jQuery ajax function that displays jQuery Qtip -> In the Qtip popup I have an ng-click on an element -> which performs a $http post and has some callbacks to update $scope values.

So all these things are happening properly. But the updates are not getting reflected in the view as per the changes made in the callback in the final stage.

I have a function for "ng-mousemove" in my view. So whenever I move my mouse, the updates in the view are getting reflected.

What am I doing wrong here? Is the because of transitioning between angular and non-angular? Can anyone help me how to solve this?


回答1:


As the docs explains:

$apply() is used to execute an expression in angular from outside of the angular framework. (For example from browser DOM events, setTimeout, XHR or third party libraries). Because we are calling into the angular framework we need to perform proper scope life-cycle of exception handling, executing watches.

So if you have a jQuery code like

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



回答2:


You have to tell angular Js something has changed with $scope.$apply().

Here is a nice blog on why: http://www.yearofmoo.com/2012/10/more-angularjs-magic-to-supercharge-your-webapp.html#apply-digest-and-phase



来源:https://stackoverflow.com/questions/14135216/angular-js-views-not-updating-properly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!