微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我只是从控制器中的服务获取json数据.

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

//JSON file
{
"pc":"name"
}

// angular services
var service = angular.module('Services',['ngResource']).
factory('Widgets',function($resource){
    return $resource('/json/home.json',{},{
        query: {method:'GET',params:{},isArray:false}
    });
});

//controller
function editWidget($scope,Widgets) {
 $scope.data = Widgets.query(function(data) {   
    alert("Success Data Loaded ---> " + JSON.stringify(data.pc));
 });
}

解决方法

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

原文地址:https://www.jb51.cc/js/153311.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐