1

私は ionic アプリケーションを開発しています。ログインに angular を使用すると、コントローラーが 2 回呼び出されます。他のすべての同様の質問を調べましたが、解決策が見つかりませんでした。

問題は、コントローラーを削除しても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>
4

2 に答える 2

0

これを持つ代わりに

ng-controller="LoginCtrl as lgnCtrl"

HTMLでは、ルートがコントローラーで定義されている場合、コントローラーでこれを使用できます。たとえば、コントローラーでは、次のようになります

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

それは魅力のように働いた

コントローラー内の関数は 1 回だけ呼び出されます。

于 2016-09-08T17:59:27.430 に答える