Angular JS 控制器调用了两次(ng-controller)
Angular JS controller called twice (ng-controller)
我正在开发一个离子应用程序,当使用 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>
如果您已经在路由中定义了控制器,则不需要在 html 模板中定义控制器,删除值为 html 模板的 ng-controller 属性,然后 运行 它将 运行 就一次
而不是这个
ng-控制器="LoginCtrl as lgnCtrl"
在html中,我们可以在控制器中定义路由时在控制器中使用它,例如在控制器中,它会像这样
$routeProvider
.when("/", { templateUrl: "views/abc.html", controller: "LoginCtrl as lgnCtrl", caseInsensitiveMatch: true });
效果很好
控制器中的函数只调用一次。
我正在开发一个离子应用程序,当使用 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>
如果您已经在路由中定义了控制器,则不需要在 html 模板中定义控制器,删除值为 html 模板的 ng-controller 属性,然后 运行 它将 运行 就一次
而不是这个
ng-控制器="LoginCtrl as lgnCtrl"
在html中,我们可以在控制器中定义路由时在控制器中使用它,例如在控制器中,它会像这样
$routeProvider
.when("/", { templateUrl: "views/abc.html", controller: "LoginCtrl as lgnCtrl", caseInsensitiveMatch: true });
效果很好
控制器中的函数只调用一次。