【问题标题】:Angular JS controller called twice (ng-controller)Angular JS 控制器调用了两次(ng-controller)
【发布时间】:2015-07-29 08:05:05
【问题描述】:

我正在开发一个离子应用程序,当使用 angular 登录时,我的控制器被调用了两次, 我查看了所有其他类似的问题,但没有找到解决方案。

问题是即使我删除了ng-controller="LoginCtrl as lgnCtrl" 我的控制器被调用一次,但没有双向数据绑定。

这是我的路线文件:

$stateProvider
.state('login', {
  url: "/login",
  views: {
    'main': {
      templateUrl: "app/user/loginView.html",
      controller: "LoginCtrl",
      controllerAs: "lgnCtrl"
    }
  }
})

  $urlRouterProvider.otherwise('/login');

这是我的控制器

angular.module('starter.controllers')
.controller('LoginCtrl', LoginCtrl);

function LoginCtrl($state, $storage, $translate, $ionicPopup, LoginService, messageService) {
    var lgnCtrl = this;
    console.log("user dash 1zz");
    return lgnCtrl;
}

这是我的观点: loginView.html:

<ion-view view-title="loginView" id="signinBlk">
   <ion-content>
       <div class="list list col span_1_of_2 "  ng-controller="LoginCtrl as lgnCtrl">
   </div>
   </ion-content>
</ion-view>

index.html:

<body ng-app="starter">
  <ion-nav-view name="main"></ion-nav-view>
</body>

【问题讨论】:

    标签: javascript angularjs ionic-framework angular-ui-router ng-controller


    【解决方案1】:

    如果您已经在路由中定义了控制器,则不需要在 html 模板中定义控制器删​​除带有值表单 html 模板的 ng-controller 属性,然后运行它将只运行一次

    【讨论】:

    • 但是,问题是当我这样做时,我没有更多的两种方式数据带:我的ng-click 没有被控制器捕获,我无法获得控制器范围
    • 你有,因为你的路由配置管理着你所有的东西,不用担心
    • 抱歉,我没听懂。我的意思是,当我删除 ng-controller 时,不会在控制器中触发 ng-click 并且不执行我的 click 功能。那该怎么办?
    • ok 改变状态 .state('login', { url: "/login", views: { 'main': { templateUrl: "app/user/loginView.html", } } } )
    • 不要在配置中定义控制器
    【解决方案2】:

    而不是这个

    ng-controller="LoginCtrl as lgnCtrl"

    在html中,当使用控制器定义路由时,我们可以在控制器中包含this,例如在控制器中,它会这样

    $routeProvider
            .when("/", { templateUrl: "views/abc.html", controller: "LoginCtrl as lgnCtrl", caseInsensitiveMatch: true });
    

    效果很好

    控制器中的函数只被调用一次。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 2011-10-03
      相关资源
      最近更新 更多