错误:使用alert时,$digest已经在angularjs中进行

前端之家收集整理的这篇文章主要介绍了错误:使用alert时,$digest已经在angularjs中进行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是从控制器中的服务获取json数据.

我正在使用回调函数打印成功消息,当它加载.它工作正常,但它也抛出了我在问题中提到的错误

  1. //JSON file
  2. {
  3. "pc":"name"
  4. }
  5.  
  6. // angular services
  7. var service = angular.module('Services',['ngResource']).
  8. factory('Widgets',function($resource){
  9. return $resource('/json/home.json',{},{
  10. query: {method:'GET',params:{},isArray:false}
  11. });
  12. });
  13.  
  14. //controller
  15. function editWidget($scope,Widgets) {
  16. $scope.data = Widgets.query(function(data) {
  17. alert("Success Data Loaded ---> " + JSON.stringify(data.pc));
  18. });
  19. }

解决方法

警报,以及确认和提示将暂停执行代码(阻止线程),在此期间超时和间隔将全部haywire,如果它们应该在暂停期间被触发. $digest循环由两个较小的循环组成,它们处理$evalAsync队列和$watch列表. $evalAsync队列用于调度需要在当前堆栈帧之外但在浏览器视图渲染之前进行的工作.这通常用setTimeout(0)完成.此时您的警报会导致问题.

猜你在找的JavaScript相关文章