javascript - ionic 登录(AngularJS)+本地存储问题

标签 javascript angularjs html cordova ionic-framework

我在 ionic 框架和 localstorage cordova 之间存在兼容性问题, 事实上,当我在输入文本登录中获取本地存储时,我的应用程序没有检测到输入中有一些文本。

但是,如果我单击输入删除一个字母并输入一个字母,我的 Controller 会检测到文本。

请问有人可以帮助我吗?

HTML:

    <form name="form" class="padding">               
            <label class="item item-input">
                <input ng-model="login.username" type="text" name="username" id="username" placeholder="Utilisateur" required>
            </label>
            <label class="item item-input">
                <input ng-model="login.password" type="password" name="password" id="password" placeholder="Mot De Passe" required>
            </label>
            <div class="padding">
                <button class="button button-block button-outline button-assertive" ng-click="login()" ng-disabled="form.$invalid">Se Connecter</button>
            </div>
        </form>

Controller .js

 $scope.login = function (username, password) {

    Chats.login($scope.login).then(function (data) {

        if (Object.keys(data.data).length === 1) {

            window.localStorage.setItem("username", $scope.login.username);
            window.localStorage.setItem("password", $scope.login.password);
            console.log($scope.login.password);

            $ionicHistory.nextViewOptions({

                disableBack: true
            });

            $state.go('app.accueil');

        } else {
            $ionicPopup.alert({
                title: "Erreur",
                template: "Verifiez Utilisateur et Mot De Passe",
                okText: 'Ok',
                okType: 'button-positive'
            });
        }
    })
}

app.js

    $ionicPlatform.ready(function () {

    document.getElementById('username').value = window.localStorage.getItem("username");
    document.getElementById('password').value = window.localStorage.getItem("password");                

最佳答案

为什么不使用范围将保存的值分配给输入字段:

$scope.login.username = window.localStorage.getItem("username") ? window.localStorage.getItem("username") : "";
$scope.login.password = window.localStorage.getItem("password") ? window.localStorage.getItem("password") : ""; 

如果我是你,我会检查这些值是否始终是字符串:

console.log(window.localStorage.getItem("username")); // => "Username"
console.log(window.localStorage.getItem("password")); // => "Password"

否则也可能会出现问题。

关于javascript - ionic 登录(AngularJS)+本地存储问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260920/

相关文章:

javascript - 如果我使用 "array.splice()",删除的元素是否从内存中删除?

javascript - 将依赖项传递给模块 Angular

javascript - jquery-在键盘上按下后续按钮时将文本输入到文本框/文本区域

javascript - 使用服务器验证后从 angularjs 提交表单

css - 使用 css 将 div 复制到弹出窗口

javascript - 浏览器刷新后如何检查输入值是否为空?

javascript - 使用 Javascript 编写解析器的教程

html - 如何保持宽高比不变?

javascript - AJAX - 如何加载 javascript 代码而不是 html?

javascript - AngularJS如何获取范围内变量的值