以前的学习基本了解了AngularJS的经常使用方法,下来就继续学习吧。css
除了内置指令,咱们能够建立自定义指令。经过.directive函数来添加。html
<div change-data> 11 </div>
//自定义指令 app.directive("changeData",function(){ return { template:"<h1>这个我自定义的!</h1>" }; });
须要注意:要是使用驼峰法命名指令,例changeData,在使用的时候必须以-分割。change-data就像上面的那个同样;这里面return { }中不仅一个返回值,按照教程上面还有不少。前端
邮箱验证:这里的验证很简单,就是把类型定义为email就行。验证出错显示是在后面,先是隐藏起来,等到出错在显示出来。sql
<form name="myForm"> Email: <input type="email" name="myAddress" ng-model="text"/> <span ng-show="myForm.myAddress.$error.email">这是一个很神奇的报错</span> </form>
咱们看代码的截图就能够发现。后端
这里ng-show里面是指定验证错误的地方。且提示信息会在ng-show属性返回true时显示。数组
能够查看值是否被修改。具体的状态值有invalid(看值是否合法),dirty(看值是否修改过),touched(看值是否经过触屏点击),error(看是否有误)app
<form name="myForm" ng-init="text='mr-zhanghui@qq.com'"> Email: <input type="email" name="myAddress" ng-model="text" required/> <span ng-show="myForm.myAddress.$error.email">这是一个很神奇的报错</span> <h1>状态值</h1> valid:-----{{myForm.myAddress.$valid}} --- //值合法为true<br/> dirty:-----{{myForm.myAddress.$dirty}} ---//值是否改变为true<br/> touched:---{{myForm.myAddress.$touched}} ---//是否经过触屏为true<br/> </form>
ng-model指令基于它们的状态为HTML元素提供CSS类经过在style类中的调用.ng-invalid就能够修改其CSS属性函数
<style> input.ng-invalid{ background-color:lightblue; } </style>
Scope在视图和控制器之间起做用,它是一个对象,有可用的方法和属性。通常应用在视图和控制器上。全部的应用都有一个$rootScope,它能够做用于整个应用中,是各个controller中scope的桥梁。使用rootScope定义的值能够在各个controller中取得。学习
app.controller("myCtrl",function($scope,$rootScope){ $scope.namess=['11','22','33']; $rootScope.rootPerson="我叫阿辉"; });
<div ng-init="names=['1','2','3']" ng-controller="myCtrl"> <li>{{rootPerson}}</li> <ul> <li ng-repeat="item in names"> {{item}} </li> <li ng-repeat="x in namess"> {{x}} </li> </ul> </div>
ng-controller指令定义了应用程序控制器,控制器是JavaScript对象,由标准的JavaScript对象的构造函数建立。ui
控制器方法:是在控制器里面建立方法,以后在VIEW中调用。感受前端的语言很屌,感受要颠覆后端语言的节奏。
<div ng-controller="method"> <input type="text" ng-model="firstName"/><br/> <input type="text" ng-model="lastName"/><br/> {{fullName()}} </div>
app.controller("method",function($scope){ $scope.firstName="张"; $scope.lastName="辉"; //定义的方法fullName(); $scope.fullName=function(){ return $scope.firstName+""+$scope.lastName; } });
$scope.persons=[ {name:'ahui',country:'jiaxin'}, {name:'ahui',country:'jiaxin'}, {name:'ahui',country:'jiaxin'} ]; <ul> <li ng-repeat="x in persons"> {{x.name+','+x.country}} </li> </ul>
AngularJS经过使用管道字符(|)添加到表达式和指令中。
过滤器能够经过一个管道字符(|)和一个过滤器添加到表达式中。
<div> <input name="text" ng-model="name"/><br/> <input name="text" ng-model="pwd"/><br/> <h4> {{name|uppercase}}<br/> //大写 {{pwd|lowercase}} //小写 </h4> </div>
添加方法是同样的;
<ul> <li ng-repeat="x in persons|orderBy:'country'"> {{x.name+','+x.country}} </li> </ul>
输入过滤器能够经过一个管道字符(|)和过滤器添加到指令中,该过滤器后跟一个冒号和一个模型名称。利用filter从数组中选择一个子集。
<p>输入过滤:</p> <p><input type="text" ng-model="test"></p> <ul> <li ng-repeat="x in names | filter:test | orderBy:'country'"> {{ (x.name | uppercase) + ', ' + x.country }} </li> </ul>