离线angularFire App Controller在没有调用onClick =“method()”的情况下执行

时间:2016-08-08 09:46:14

标签: angularjs ionic-framework firebase angularfire

控制器在我甚至可以点击ng-cliclk =“logout()之前执行”我该如何防止这种情况

JS:

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

模板:

<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>

1 个答案:

答案 0 :(得分:0)

Controller也就像我们在ng-controller中使用它时执行的功能。所以你应该在$scope.logout()中创建logOutCtrl函数,并在该函数中添加相关的注销代码,而不是在控制器中公开编写代码。

修改后的控制器:

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

修改后的模板:

<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>