复选框输入未在逻辑立场中更改值

时间:2015-09-23 00:52:51

标签: javascript angularjs cordova ionic

我使用AngularJS和Ionic框架来制作混合移动应用程序并且遇到一些看似非常基本的问题。只需创建一个简单的记住我按钮。

这是我的控制器:

function loginController($scope, $state) {
    $scope.formData = {
        email: null,
        password: null
    };

    $scope.remember = false;

    $scope.doLogin = function() {
        alert("Remember me? - " + $scope.remember);
        console.log($scope.formData);
    };
}

这是我的页面:

<ion-view hide-nav-bar="true">
  <ion-header-bar>
    <h1 class="title">Login</h1>
  </ion-header-bar>
  <ion-content>
    <form>
      <div class="list">
        <label class="item item-input">
          <span class="input-label">Username</span>
          <input type="text" ng-model="formData.email">
        </label>
        <label class="item item-input">
          <span class="input-label">Password</span>
          <input type="password" ng-model="formData.password">
        </label>
        <label class="item item-checkbox">
            <label class="checkbox">
                <input type="checkbox" ng-model="remember">
            </label>
            Remember me? - {{remember}}
        </label>
        <label class="item">
          <button ng-click="doLogin()" class="button button-block button-positive" type="submit">Log in</button>
        </label>
      </div>
    </form>
  </ion-content>
</ion-view>

问题在于,当我按下按钮并调用doLogin时,警报将显示最初声明的值。在此示例中,它将打印出以下输出:

Remember me? - false

但是,文档中的{{remember}}表示复选框的正确true/false值。如果我要将记住的原始声明更改为$scope.remember = null;那么警报将始终输出:

Remember me? - null

我有点困惑的是,考虑到{{remember}}正在提升记忆值,记住的值显然正在更新。

用户名和密码也正在更新,这让我感到非常难过。

0 个答案:

没有答案