我理解AngularJS通过一些代码运行两次,有时甚至更多,像$ watch事件,不断检查模型状态等。
但是我的代码:
function MyController($scope,User,local) { var $scope.User = local.get(); // Get locally save user data User.get({ id: $scope.User._id.$oid },function(user) { $scope.User = new User(user); local.save($scope.User); }); //...
执行两次,将两个记录插入我的数据库。我显然还在学习,因为我一直在撞我的头这个年龄!
应用程序路由器指定导航到MyController如下:
原文链接:https://www.f2er.com/angularjs/147497.html$routeProvider.when('/',{ templateUrl: 'pages/home.html',controller: MyController });
但我也有在home.html:
<div data-ng-controller="MyController">
这消化了控制器两次。从HTML中删除data-ng-controller属性解决了问题。或者,controller:property可能已从路由指令中删除。
使用标签式导航时也会出现此问题。例如,app.js可能包含:
.state('tab.reports',{ url: '/reports',views: { 'tab-reports': { templateUrl: 'templates/tab-reports.html',controller: 'ReportsCtrl' } } })
相应的报表标签HTML可能类似于:
<ion-view view-title="Reports"> <ion-content ng-controller="ReportsCtrl">
这也将导致控制器运行两次。