我使用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}}
正在提升记忆值,记住的值显然正在更新。
用户名和密码也正在更新,这让我感到非常难过。