加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

与AngularJS执行控制器两次

发布时间:2020-12-17 09:23:04 所属栏目:安全 来源:网络整理
导读:我理解AngularJS通过一些代码运行两次,有时甚至更多,像$ watch事件,不断检查模型状态等。 但是我的代码: function MyController($scope,User,local) {var $scope.User = local.get(); // Get locally save user dataUser.get({ id: $scope.User._id.$oid
我理解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如下:
$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">

这也将导致控制器运行两次。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读