我正在开发一个离子应用程序,当使用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>
答案 0 :(得分:5)
如果您已经在路线中定义了控制器,则不需要在html模板中定义控制器,使用值形式html模板删除ng-controller属性然后运行它将只运行一次
答案 1 :(得分:0)
而不是拥有这个
ng-controller =&#34; LoginCtrl as lgnCtrl&#34;
在html中,当用控制器定义路由时,我们可以在控制器中有这个,例如在控制器中,它会像这样
$NoCieReflection = new \ReflectionClass('\\Ogasys\\Enum\\NoCie');
if (!in_array($this->NoCie, $NoCieReflection->getConstants())) {
$error = true;
array_push($msg, "# de compagnie invalide");
}
它像魅力一样工作
控制器中的功能只被调用一次。