码迷,mamicode.com
首页 > Web开发 > 详细

Angular.js中的指令——易懂全解析

时间:2016-03-18 16:13:23      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">	</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">angular.js中,指令是最基础的也是最重要的工具之一。angular.js指令指的是以ng为前缀的HTML属性。在之前的ng-app、ng-model等,都属于指令。</span>

angular.js中的基本指令包括如下内容:

· 1.ng-app/ng-model

ng-app指令用于声明angular,js的作用范围,ng-model用于声明模型。这些在之前都已经进行过详细介绍。

2.ng-init

这个指令用于进行模块的初始化,一个最简单的使用方法是利用这个指令进行数据初始化,代码如下:

<div ng-app="" ng-init="cost=5">
<p>单价: {{  cost }}</p>
</div>
上述代码中,利用ng-init初始化了cost变量的值,在之后利用{{}}(angular中的数据绑定方式之一)进行调用。但是这种数据初始化的方式并不推荐。

3.ng-bind

这个指令可以用来进行数据绑定,它的功能就和我们之前提到的{{}}作用相同。在如下代码中,我们不用{{}}方式,而改用ng-bind指令进行数据绑定,代码如下:

<div ng-app="" ng-init="cost=5">
<p>单价: <span ng-bind= "cost"></span></p>
</div>
4.ng-repear

ng-repeat指令用于进行反复输出,一般用于对数组的遍历,示例代码如下:

<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">
<p>循环对象:</p>
<ul>
 		       <li ng-repeat="x	in names">
    		{{ x.name + ', ' + x.country }}
 		 </li>
</ul>
</div>
        这里对names内的所有徐对象进行遍历,并分别按照规定的模板进行输出,类似于php中的foreach语句。x in names表示将names数组中的每一个对象都赋值给x,然后输出,没循环一次进行一次这个操作,直到将数组遍历结束。

以上给出的都是AngularJS中自己预先定义的指令。我们在angular.js中还可以自己进行指令的定义,需要使用directive方法。一个简单的指令定义代码如下:

var app = angular.module("myApp", []);
app.directive("hello", function() {
    return {
        template : "<h1>自定义指令!</h1>"//tempate指定该指令渲染的模板
    };
});
上面的代码中我们定义了一个hello指令,template定义了该指令的模板,即我们使用这个指令时,需要在html中呈现出什么样的内容。定义好指令后,就可以像之前一样进行调用了。

上面对指令的调用只给出了作为html属性的调用方式。其实angular.js中提供了四种进行指令调用的方法。它们分别为元素名调用、属性调用、类名调用和注释调用。它们的形式如下(按顺序):

<runoob-directive></runoob-directive>
<div runoob-directive></div>
<div class="runoob-directive"></div>
<!-- 指令: runoob-directive -->

angular中,为了更清楚的表示这四种调用,每个调用都为其设定了一个英文字母的标识,用于在指令定义时限定它们的被调用方式,分别为:

E 只限元素名使用

A 只限属性使用

C 只限类名使用

M 只限注释使用

下面的例子说明了如何在定义指令时使用这些限制:

var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
    return {
        restrict : "A",
        template : "<h1>自定义指令!</h1>"
    };
});
当然,这些标识也可以放在一起使用,默认的restrict为EA,表示可以元素名调用或者属性调用。





Angular.js中的指令——易懂全解析

标签:

原文地址:http://blog.csdn.net/fareise/article/details/50922146

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!