国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

AngularJS的四大核心特性(二)

2024-04-27 15:14:38
字體:
供稿:網(wǎng)友

AngularJS核心特性3---指令系統(tǒng)

        指令的本質(zhì):類似于taglib

<!DOCTYPE html><html  ng-app = "MyModule">	<head>		<meta charset="UTF-8">		<title>AngularJS第三特性指令系統(tǒng)</title>	</head>	<body>		<hello></hello>	</body>	<script src="js/angular-1.3.0.js"></script>	<script src="js/HelloAngular_Directive.js"></script></html>        如上HTML代碼中出現(xiàn)了<hello>這個(gè)標(biāo)簽,但是瀏覽器不認(rèn)識<hello>標(biāo)簽,默認(rèn)的執(zhí)行行為就是將其忽略。而AngularJS為了不讓它被忽略,故在js中如下操作:

var myModule = angular.module("MyModule", []);myModule.directive("hello",function  () {	return {		restrict: 'E',		template: '<div>Hi! Everyone!</div>',		replace: true			}});        AngularJS一切都是從模塊開始的,所以先創(chuàng)建的模塊myModule,再調(diào)用它的方法directive,指令名稱為hello的標(biāo)簽名,該標(biāo)簽名就是對應(yīng)HTML頁的那個(gè)hello標(biāo)簽名,接著就是function函數(shù)具體操作了。

        運(yùn)行起來后,就會發(fā)現(xiàn),hello已經(jīng)被替換成了模板,另外的restrict和replace函數(shù),自己可以查一下。運(yùn)行結(jié)果如下:

        指令系統(tǒng)的神奇之處就在于,當(dāng)調(diào)用一大堆東西的時(shí)候可以先定義指令,再將其封裝起來,然后調(diào)用起來就會特別爽!其實(shí)上述的ng-app就是一個(gè)指令,相當(dāng)于C#中的main,從這個(gè)指令開始,內(nèi)部的所有標(biāo)簽內(nèi)容就歸AngularJS來管了,也就是說AngularJS是從ng-app來啟動的,只能出現(xiàn)一次。

AngularJS核心特性4---雙向數(shù)據(jù)綁定

        先簡單說一下傳統(tǒng)的單向數(shù)據(jù)綁定的處理流程:把模板寫好后,加上數(shù)據(jù),這個(gè)數(shù)據(jù)可能從后臺服務(wù)端讀出來的,模板和數(shù)據(jù)結(jié)合在一起,通過數(shù)據(jù)綁定機(jī)制,生成HTML標(biāo)簽,在將該HTML標(biāo)簽插入到文檔流中去。

        存在的缺點(diǎn):標(biāo)簽一旦生成就無法變動了,當(dāng)有新數(shù)據(jù)進(jìn)來時(shí),沒辦法只能重新再來一遍,并整體替換掉。

AngularJS為使過程更優(yōu)雅進(jìn)行,采用了雙向數(shù)據(jù)綁定的形式,核心思想是:視圖與數(shù)據(jù)相對應(yīng),即視圖上數(shù)據(jù)變化時(shí),數(shù)據(jù)模型中的數(shù)據(jù)也響應(yīng)變化,數(shù)據(jù)模型變化時(shí),視圖會自動更新,可借助一個(gè)事件機(jī)制來實(shí)現(xiàn)。如下:

        那么HTML中哪些視圖會不斷的變化呢?表單!主要用來收集用戶輸入,很容易變化,通過AngularJS同步到數(shù)據(jù)模型中去!代碼特別簡單,不必書寫js代碼,只需導(dǎo)入相應(yīng)的js庫即可:

<!DOCTYPE html><html ng-app>	<head>		<meta charset="UTF-8">		<title>AngularJS核心特性4:數(shù)據(jù)雙向綁定</title>	</head>	<body>		<div>			<input ng-model="greeting.text" />			<p>{{greeting.text}},AngularJS</p>		</div>	</body>	<script type="text/javascript" src="js/angular-1.3.0.js" ></script></html>

        雙花括號代表取值,當(dāng)ng-model變化時(shí),p標(biāo)簽中的內(nèi)容會自動變化。運(yùn)行結(jié)果:

         學(xué)習(xí)了雙向綁定特性后,還請大家思考一下為什么其他前端框架只是單向數(shù)據(jù)綁定,而不實(shí)現(xiàn)雙向的?雙向數(shù)據(jù)綁定又有什么潛在的缺點(diǎn)呢?


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南澳县| 元谋县| 德保县| 嵩明县| 两当县| 肃南| 莱西市| 赤城县| 吉安县| 内黄县| 五河县| 元氏县| 上栗县| 红原县| 小金县| 公主岭市| 兴业县| 泾源县| 交城县| 宜兰县| 顺平县| 乌拉特后旗| 山丹县| 台东市| 南靖县| 宁陵县| 平阳县| 永登县| 岱山县| 大渡口区| 乐昌市| 南部县| 沙河市| 肇州县| 石狮市| 永定县| 托克托县| 安龙县| 宁河县| 普兰店市| 米脂县|