ng-model无法通过特定方法从输入中获取值

时间:2018-03-30 00:37:18

标签: javascript html angularjs

我想使用ng-keypress查看电子邮件复制。 所以我宣布了ng-model' usrEmail'。 当它用于“注册”时方法,它可以与输入值绑定,但它不能与checkDuplication'中的输入值绑定。

如何解决这个问题??

signup.html

<input type="email" class="form-control" name="usrEmail" ng-model="usrEmail" ng-required="true" ng-keyup="checkDuplication()">
...
<button class="btn btn-primary full-width" ng-click="register()">Register</button>

signup.js

var methods = {
    checkDuplication: function($scope) {
        $scope.usrEmail;
        console.log($scope.usrEmail); // undifined!!!!!!!
        ...
    },
    register: function($scope){
        $scope.user.usrEmail =  $scope.usrEmail; // successfully binded!
        ...
    }

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个

<input type="email" class="form-control" name="usr-Email" ng-model="usrEmail" ng-required="true" ng-keyup="checkDuplication()">

答案 1 :(得分:0)

您不应将$ scope作为参数传递给Singup.js(控制器/服务)。您应该在ng-keyup="checkDuplication(usrEmail)"之类的标记中传递模型,并在函数中使用:

checkDuplication: function(usrEmail) {
    console.log(usrEmail);
    ...
}

这是一个帮助的Plunker:https://plnkr.co/edit/bl4Ui3LbDckvrg8XDjxP?p=preview