AngularJS入门教程之AngularJS模型
相关阅读:
AngularJS入门教程之AngularJS表达式
AngularJS入门教程之AngularJS指令
在前面表达式和指令的教程中了解到,AngularJS模型(ng-model)可以将HTML输入域中的值与AngularJS创建的变量绑定。
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <scriptsrc="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <divng-app=""ng-init="name='JoneSnow'"> 名字:<inputng-model="name"> </div> </body> </html>
双向绑定AngularJS的双向绑定,是指ng-model与HTML的输入域绑定,同时也与AngularJS的属性绑定,所以当输入域的值改变的时候,AngularJS的属性值也会改变。
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <scriptsrc="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <divng-app="myApp"ng-controller="myCtrl"> 名字:<inputng-model="name"> <h1>你输入了:{{name}}</h1> </div> <script> varapp=angular.module('myApp',[]); app.controller('myCtrl',function($scope){ $scope.name="JohnSnow"; }); </script> <p>修改输入框的值,标题的名字也会相应修改。</p> </body> </html>
应用状态ng-model指令可以为应用数据提供状态值
dirty当数据被修改时状态为TRUE,没有被修改过为FALSE。即使修改为原来的值,也为TRUE。
valid输入值合法时为TRUE,不合法则为FALSE。
touched通过触屏点击为TRUE,没有点击为FALSE。
根据状态来应用CSS样式
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <scriptsrc="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <style> input.ng-invalid{ background-color:lightblue; } </style> <body> <formng-app=""name="myForm"> 输入你的名字: <inputname="myAddress"ng-model="text"required> </form> </body> </html>
input域增加了required状态,当input域没有输入时,ng-model为input域增加ng-invalid样式。反之则删除ng-invalid样式。ng-model指令根据表单域的状态添加/移除以下样式:-ng-empty-ng-not-empty-ng-touched-ng-untouched-ng-valid-ng-invalid-ng-dirty-ng-pending-ng-pristine使用ng-model验证邮箱格式
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <scriptsrc="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <formng-app=""name="myForm"> Email: <inputtype="email"name="myAddress"ng-model="text"> <spanng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span> </form> </body> </html>
myForm.myAddress.$error.email属性为TRUE(邮箱格式不正确)时,ng-show会控制span的内容显示出来。
以上内容是小编给大家介绍的AngularJS入门教程之AngularJS模型,希望对大家有所帮助!