AngularJS通过指令将HTML属性进行了扩展。
AngularJS指令
AngularJS指令是带有ng-前缀的扩展HTML属性。
ng-app指令用来初始化AngularJS application。
ng-init指令用来初始化application数据。
ng-model指令用来将HTML控件(如input,select,textarea等)的值绑定到application数据。
<div ng-app="" ng-init="firstName='John'"> <p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p> </div>
ng-app指令同时也告诉AngularJS,它所在的<div>元素是AngularJS application的根元素,即作用域。
数据绑定
在上面的示例中,{{ firstName }}是一个AngularJS数据绑定表达式。
在AngularJS数据绑定中,AngularJS表达式使用AngularJS数据进行同步更新。
{{ firstName }}通过ng-model="firstName"同步更新数据。
<div ng-app="" ng-init="quantity=1;price=5"> Quantity: <input type="number" ng-model="quantity">
Costs: <input type="number" ng-model="price"> Total in dollar: {{ quantity * price }} </div>
使用ng-init指令在AngularJS开发中非常普遍。在控制器一节中你将会看到更好的初始化数据的方法。 |
重复HTML元素
ng-repeat指令用来重复创建一个HTML元素:
<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>
在对象数组上使用ng-repeat指令:
<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]"> <ul>
<li ng-repeat="x in names">
{{ x.name + ', ' + x.country }}
</li>
</ul> </div>
AngularJS非常适合数据库CRUD(即创建,读取,更新和删除)操作。想象一下,如果这些对象来自于数据库呢? |
ng-app指令
ng-app指令定义了AngularJS application的根元素。
当Web页面加载完成后,ng-app指令将auto-bootstrap(自动初始化)application。即自动初始化并引导AngularJS application执行。
在后面的章节中你将会学习到如何给ng-app指令指定一个值(例如ng-app="myModule"),从而与模块联系起来。
ng-init指令
ng-init指令用于为AngularJS application初始化值。
一般情况下不需要使用ng-init指令,而是使用控制器或者模块来进行初始化工作。
在后面的章节中你将会学习到有关控制器和模块的相关内容。
ng-model指令
ng-model指令用来将HTML控件(如input,select,textarea等)的值绑定到application数据。
ng-model指令还可以用来:
- 提供数据验证(如验证数字,email地址,必填项)。
- 提供数据的状态(如invalid,dirty,touched,error)。
- 为HTML元素提供CSS样式类。
- 将HTML元素绑定到HTML表单。
ng-repeat指令
ng-repeat指令用来为数据集合(或者数组)中的每一个元素生成一个对应的HTML元素。