AngularJS输入验证

时间:2018-04-05 12:00:20

标签: angularjs onsen-ui

我有这个HTML

findAll()

我的登录功能看起来像这样。

<ons-input id="username" modifier="underbar" name="username" placeholder="Nombre de usuario" float ng-model="page.username" ></ons-input>

<ons-input id="password" modifier="underbar" name="password" type="password" placeholder="Contraseña" float ng-model="page.password" ></ons-input>
<img ng-click="login()" class="boton-login" src="img/boton_acceder.png"></img>

我收到错误:$scope.login = function(){ if ($scope.page.username.length==0 || typeof $scope.page.username =="undefined"){ ons.notification.alert("Error"); }else{ //More code. } } ,我尝试使用Cannot read property 'username' of undefined$dirty的angularjs类,但仍然遇到同样的问题,所以如果有人知道怎么知道我的当我点击按钮时输入为空,请帮帮我

2 个答案:

答案 0 :(得分:1)

这是因为你没有定义page

我建议你这样做:

app.controller('demoCtrl', function ($scope) {
    $scope.page = { username: new String() };

    $scope.login = function () {
        if ($scope.page.username !== undefined)
            if ($scope.page.username.length === 0)
                console.log('error');
            else
                console.log('ok');

    }
});

Demo

答案 1 :(得分:0)

在评估$scope.page时,

$scope.page.username未定义。如果你检查一下是否定义了$scope.page,那么应该有效:

$scope.login = function(){
    if ($scope.page.username.length==0){
       ons.notification.alert("Error");
 }else{
      //More code.
   }
}

此外,如果您希望$scope.page对象始终存在(从头开始),您应该在控制器中定义$scope.page = { username: '' }