一、Angular是什么
基于JS的框架,类似JQuery,利用数据绑定和依赖注入实现页面数据的渲染,无需人为写大量的JS,减少了代码量,优美了代码。
二、Angular优缺点
Angular适用与CURD的Web,不适用于游戏、图像等Web。
三、Angular各标识意义
ng-app:
1、标明这是一个AngularJS应用,ng-app可以放在html标签中,表示整个html都是,也可以放在单个div上,但是只有第一个div上的ng-app会被angular自动加载,其他的只能手动加载。
2、如果不连接到任何代码块,只需这样写:<div ng-app></div>,如果需要连接到代码块:可以使用ng-app="myModule"。
3、手动加载可以这么写
<script> var app = angular.module("myApp", []); app.directive("runoobDirective", function() { return { template : "<h1>自定义指令!</h1>" }; }); </script>
ng-model:自动对数据进行双向绑定,适用于input输入框,而且当输入框没有输入数据或者输入的数据无效时,这个input输入框会自动变红。
{{}}:数据绑定且是双向绑定,有点像MVVM,通常和ng-model配合使用
ng-init:初始化参数
<div ng-app ng-init="aa='xxx';bb=aa;"> <p>我的第一个表达式: {{bb}}</p> </div>
ng-repeat:只支持数组?对象为AngularJS对象全是用大括号表示,不像Json中包含中括号。
ng-bind:等同于{{}},可用在标签上,标签的innerText赋值,如<p>总价: <span ng-bind="quantity * cost"></span></p>
.directive:指令,可用在任何地方:元素名、属性、类名、注释
restrict:和directive搭配使用,表示只能在特定环境下使用:
E
只限元素名使用A
只限属性使用C
只限类名使用M
只限注释使用
验证:
<form ng-app="" name="myForm"> Email: <input type="email" name="myAddress" ng-model="text"> <span ng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span> </form>
<form ng-app="" name="myForm" ng-init="myText = 'test@runoob.com'"> Email: <input type="email" name="myAddress" ng-model="myText" required></p> <h1>状态</h1> {{myForm.myAddress.$valid}} {{myForm.myAddress.$dirty}} {{myForm.myAddress.$touched}} </form>
<style> input.ng-invalid { background-color: lightblue; } </style> <body> <form ng-app="" name="myForm"> 输入你的名字: <input name="myAddress" ng-model="text" required> </form>
过滤器:
过滤器 | 描述 |
---|---|
currency | 格式化数字为货币格式,默认是美元,如果要换成人名币,可以自定义 {{num | currency : '¥'}} |
filter | 从数组项中选择一个子集。 |
lowercase | 格式化字符串为小写。 |
orderBy | 根据某个表达式排列数组。 |
uppercase | 格式化字符串为大写。 |