如何使用ng模型进行验证

时间:2015-09-29 19:30:18

标签: angularjs

嗯,我是AngularJS的新手。我试图找出ng-model的工作原理。 我想要做的是获取输入字段的字符串,看看它是否等于另一个字符串。我检查了文档,但无法弄清楚。任何对初学者的建议都将不胜感激!

var app = angular.module("app",[]);
app.controller('MainController',function($scope){
    if($scope.name === "Lisa"){
        alert("my name is lisa !");
    }
})

2 个答案:

答案 0 :(得分:1)

如果您想在控制器中进行验证,就像在示例中一样,您需要在模型上设置一个观察者,如下所示。

var app = angular.module("app",[]);
app.controller('MainController',function($scope){

    $scope.$watch('name', function (newValue, oldValue) {
        // NOTE: triggered on every change in $scope.name model
        if(newValue === "Lisa"){
            alert("my name is lisa !");
        }
    });
});

对于更高级的验证,您需要创建一个需要ng-model指令的指令,并使用其控制器NgModelController添加自定义验证器。

答案 1 :(得分:0)

从Angular Docs粘贴的副本:

<强> ngModel - 模块ng中的指令 ngModel指令使用NgModelController将输入,select,textarea(或自定义表单控件)绑定到作用域上的属性,NgModelController由此指令创建和公开。

ngModel负责:

将视图绑定到模型中,其他指令如input,textarea或select require。

提供验证行为(即必需,数字,电子邮件,网址)。 保持控件的状态(有效/无效,脏/原始,触摸/未触摸,验证错误)。

在元素上设置相关的css类(ng-valid,ng-invalid,ng-dirty,ng-pristine,ng-touching,ng-untouched,ng-empty,ng-not-empty),包括动画。

使用其父表单注册控件。

注意:ngModel将尝试通过评估当前范围上的表达式绑定到给定的属性。如果该范围内的属性尚未存在,则将隐式创建该属性并将其添加到范围中。

https://docs.angularjs.org/api/ng/directive/ngModel