abstract:1.指令的定義從用戶(hù)的角度來(lái)看,指令就是在應(yīng)用的模板中使用的自定義HTML標(biāo)簽。指令可以很簡(jiǎn)單,也可以很復(fù)雜。AngularJS的HTML編譯器會(huì)解析指令,增強(qiáng)模板的功能。也是組件化未來(lái)的發(fā)展趨勢(shì),目前HTML5中也加入了很多新標(biāo)簽,但是在實(shí)際業(yè)務(wù)開(kāi)發(fā)過(guò)程中,有很多復(fù)用的模板,加上復(fù)用的交互效果,可以將其編寫(xiě)為AngularJS的指令,開(kāi)發(fā)工程師可以在同一個(gè)項(xiàng)目,或多個(gè)項(xiàng)目中使用,實(shí)現(xiàn)開(kāi)發(fā)一次,到
1.指令的定義
從用戶(hù)的角度來(lái)看,指令就是在應(yīng)用的模板中使用的自定義HTML標(biāo)簽。指令可以很簡(jiǎn)單,也可以很復(fù)雜。AngularJS的HTML編譯器會(huì)解析指令,增強(qiáng)模板的功能。也是組件化未來(lái)的發(fā)展趨勢(shì),目前HTML5中也加入了很多新標(biāo)簽,但是在實(shí)際業(yè)務(wù)開(kāi)發(fā)過(guò)程中,有很多復(fù)用的模板,加上復(fù)用的交互效果,可以將其編寫(xiě)為AngularJS的指令,開(kāi)發(fā)工程師可以在同一個(gè)項(xiàng)目,或多個(gè)項(xiàng)目中使用,實(shí)現(xiàn)開(kāi)發(fā)一次,到處使用的目標(biāo)。
2.內(nèi)置指令和自定義指令
AngularJS內(nèi)部指令都是ng-diretivename這種,以ng-開(kāi)頭??梢酝ㄟ^(guò) https://docs.angularjs.org/api/ng/directive
查看AngularJS的指令。在實(shí)際開(kāi)發(fā)中,常用的有以下幾個(gè):
ngApp
ngController
ngClass
ngClick
ngShow和ng-hide
ngRepeat
ngSubmit
3.第一個(gè)指令
編寫(xiě)一個(gè)第一個(gè)指令,輸出Hello AngularJS Diretive.
index.html
<html ng-app="app"><head><title>AngularJs First Diretive</title> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></link> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootswatch/3.3.5/cosmo/bootstrap.min.css" /> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://code.angularjs.org/1.5.7/angular.js"></script> <script src="script.js"></script></head><body ng-controller="mainCtrl"> <hello-world></hello-world></body></html>
script.js
var app=angular.module('app',[]);app.controller('mainCtrl',function($scope){ $scope.message="Learning Angularjs";});angular.module('app').directive('userInfoCard',function(){ return { template:"Hello World. I am an Angularjs Diretive.", restrict:"EA", replace:true }})
運(yùn)行效果如下:
4.總結(jié)
在AngularJS中,指令非常的重要。指令是AngularJS和其他大多數(shù)JavaScript客戶(hù)端框架的區(qū)別所在,也是未來(lái)Web開(kāi)發(fā)組件化趨勢(shì)所在。有了指令,無(wú)需編輯一大段代碼定義模型;有了指令,AngularJS的模型和視圖得到了建好,從而讓開(kāi)發(fā)者可以快速高效的開(kāi)發(fā)強(qiáng)大的應(yīng)用。