ng-model未定义多种方式无法从文本框中获取文本

时间:2015-01-07 12:32:33

标签: javascript angularjs

我尝试了几种方法,但我似乎无法阅读我的ng模型。警报总是以未定义的形式返回:

<div class="col-lg-4">
    <div class="form-group">
            <label for="pincode">Pin Code</label>
            <input type="email" style="width:550px" ng-model="pincode1" class="form-control" placeholder="Enter Pin">
        </div>
         <a ng-click="adminCheck(pincode1)" style="width:550px" class="xpad btn btn-block btn-success">Login</a><br />
        </div>

JS:

$scope.adminCheck = function(pin) {
    alert(pin);
    if ($scope.pincode1 == "4444") {
        alert("sorted");
    } else {
        $state.go($state.current.name, {}, {
            reload: true
        })
    }
}

我也尝试过:

$scope.adminCheck = function(pin) {
    alert($scope.pincode1);
    if ($scope.pincode1 == "4444") {
        alert("sorted");
    } else {
        $state.go($state.current.name, {}, {
            reload: true
        })
    }
}

2 个答案:

答案 0 :(得分:1)

如果您使用type email,则需要输入有效的电子邮件地址,范围变量(pincode1)不在scopeundefined中,直到您添加有效的电子邮件地址

放置有效的电子邮件地址,例如xx@gmail.com,您的代码将按预期运行。


为了澄清更多信息,只需将{{ pincode1 }}放入并检查输入模型值是否绑定到此处,您将看到{{ pincode1 }}在您在文本框中放入有效的电子邮件地址之前不会打印任何内容。


这里是demo Plunker(使用有效和无效的电子邮件地址进行检查。)

答案 1 :(得分:0)

在采取任何行动之前检查表单有效性 - 提交,路由等

更改

<div class="form-group">

<form class="form-group"  name="myform">

(并正确关闭相应的标签)

在您的控制器中,检查表单的有效性。此表单仅在用户输入有效的电子邮件地址时才有效

if($scope.myform.$valid){
//do your logic here
}