嗯,我是AngularJS的新手。我试图找出ng-model的工作原理。 我想要做的是获取输入字段的字符串,看看它是否等于另一个字符串。我检查了文档,但无法弄清楚。任何对初学者的建议都将不胜感激!
var app = angular.module("app",[]);
app.controller('MainController',function($scope){
if($scope.name === "Lisa"){
alert("my name is lisa !");
}
})
答案 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将尝试通过评估当前范围上的表达式绑定到给定的属性。如果该范围内的属性尚未存在,则将隐式创建该属性并将其添加到范围中。