2016-08-08 29 views
0

Controller aufgerufen wird erhalten ausgeführt, bevor ich sogar die der ng-cliclk = "logout()" klicken konnte, wie kann ich dieseionisch angularFire App Controller wird ohne onClick ausgeführt = "Methode()"

JS verhindern:

.controller('logOutCtrl', function($scope, taskref, $state) { 
    if (taskref.unauth()) { 
    $state.go('tabsController.pendingTasks'); 
    } else { 
    $state.go('login'); 
    } 
}) 

Vorlage:

<ion-list data-componentid="list5"> 
    <ion-item ui-sref="settings" menu-close="" data-componentid="list-item9">Settings</ion-item> 
    <ion-item ui-sref="reminders" menu-close="" data-componentid="list-item10">Help &amp; Reminders</ion-item> 
    <ion-item ui-sref="login" menu-close="" ng-controller="logOutCtrl" ng-cliclk="logout()" data-componentid="list-item12">Log out</ion-item> 
</ion-list> 

Antwort

0

Controller ist auch wie eine Funktion, die ausgeführt wird, wenn wir es mit ng-controller verwenden. Daher sollten Sie die $scope.logout()-Funktion in logOutCtrl erstellen und den zugehörigen Abmeldecode in diese Funktion einfügen, anstatt Code offen im Controller zu schreiben.

Modified Controller:

.controller('logOutCtrl', function($scope, taskref, $state) { 
     $scope.logout = function(){ 
      if (taskref.unauth()) { 
      $state.go('tabsController.pendingTasks'); 
      } else { 
      $state.go('login'); 
      } 
     } 
}) 

Modifizierte Vorlage:

<ion-list data-componentid="list5"> 
    <ion-item ui-sref="settings" menu-close="" data-componentid="list-item9">Settings</ion-item> 
    <ion-item ui-sref="reminders" menu-close="" data-componentid="list-item10">Help &amp; Reminders</ion-item> 
    <ion-item ui-sref="login" menu-close="" data-componentid="list-item12">Log In</ion-item> 
    <ion-item menu-close="" ng-controller="logOutCtrl" ng-click="logout()" data-componentid="list-item12">Log out</ion-item> 
</ion-list>