先补充一个概念:脏检查。
首先纠正误区,Angular并不是周期性触发脏检查。
只有当UI事件,ajax请求或者 timeout 延迟事件,才会触发脏检查。
为什么叫脏检查? 对脏数据的检查就是脏检查,比较UI和后台的数据是否一致!
对于我遇到的问题,是这样的:
首先在全局js文件中,绑定了controller与view的关系:
state('orderMang', {
parent: 'console',
url: '/sysManage/orderMang',
templateUrl: 'views/sys/orderMang.html',
controller: 'orderMangController'
然后又在view中增加了controller:
<section class="content">
<div class="container-fluid allContent mw1200 bg-white">
<div class="row" ng-controller="orderMangController">
<div class="col-md-12 p10 dpf fvc">
所以导致了初始化所有方法都被执行了两次。解决方法只需要将view中的ng-controller去掉。
本文介绍了AngularJS中初始化时同一方法被调用两次的问题,澄清了Angular不是周期性触发脏检查的误解,指出只有在UI事件、Ajax请求或timeout后才会触发脏检查。问题根源在于全局JS文件与视图中重复定义了控制器,解决方案是移除视图中的ng-controller属性。

被折叠的 条评论
为什么被折叠?



