已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
AngularJS自定義組件開發(fā),.,主要內(nèi)容,第一部分:什么是AngularJs? 第二部分:五大特性 第三部分:簡單的例子 第四部分:模塊化 第五部分:指令 第六部分:AngularJS的優(yōu)勢與缺點(diǎn),.,什么是AngularJS,AngularJS是協(xié)助搭建單頁面工程的開源前端框架。它通過MVC模式使得開發(fā)與測試變得更容易。 AngularJS試圖成為WEB應(yīng)用中的一種端對端的解決方案。它將指導(dǎo)開發(fā)整個(gè)應(yīng)用。 AngularJS于2009年發(fā)布第一個(gè)版本,由Google進(jìn)行維護(hù),壓縮版94k。,.,AngularJS五大特性,雙向數(shù)據(jù)綁定 -實(shí)現(xiàn)了把model與view完全綁定在一起,model變化,view也變化,反之亦然。MVC -吸收了傳統(tǒng)的MVC設(shè)計(jì)模式針但又并不執(zhí)行傳統(tǒng)意義上的MVC,更接近于MVVM(Moodel-View-ViewModel)。模板-在AngularJS中,模板相當(dāng)于HTML文件被瀏覽器解析到DOM中,AngularJS遍歷這些DOM,也就是說AuguarJS把模板當(dāng)做DOM來操作,去生成一些指令來完成對view的數(shù)據(jù)綁定。指令-可以用來創(chuàng)建自定義的標(biāo)簽,也可以用來裝飾元素或者操作DOM屬性。依賴注入-AngularJS擁有內(nèi)建的依賴注入子系統(tǒng),可以幫助開發(fā)人員更容易的開發(fā),理解和測試應(yīng)用。,.,AngularJs的核心思想,UI視圖,數(shù)據(jù)模型,視圖、數(shù)據(jù)雙向更新,這個(gè)過程由AngularJs自動進(jìn)行開發(fā)者無需關(guān)注,在AngularJS中通過數(shù)據(jù)視圖雙向綁定實(shí)現(xiàn)。,.,AngularJs的核心思想,遵循MVC模式開發(fā)。,.,如何使用,.,簡單的例子-編寫html, 按名字排序 按年齡排序 phone.snippet phone.age ,ng-app:AngularJS程序入口,對該標(biāo)簽內(nèi)的元素進(jìn)行初始化。ng-controller:在當(dāng)前元素范圍內(nèi)綁定指定的控制器(controller)。ng-model:指定當(dāng)前元素與數(shù)據(jù)模型($scope)中的屬性綁定,如果數(shù)據(jù)模型中沒有此屬性,會自動新建一個(gè)。ng-repeat:循環(huán)$scope中的屬性,類似于#each beansxxx:花括號表示讀取某一屬性值filter、orderBy:過濾器。filter可以根據(jù)指定的屬性過濾數(shù)據(jù)(例子里是quer屬性)。orderBy是排序過濾器。這兩個(gè)過濾器都是內(nèi)置的。過濾器是可自定義的。,.,簡單的例子-編寫控制器,var PhoneListCtrl = $scope, $http, function($scope, $http) $http.get(./json/test-1.json) .success(function(data) $scope.phones = data; ); $scope.sortType = age; ;,PhoneListCtrl 控制器。控制器的聲明方式是 var c1=ser1,ser2,functionc1是控制器的名字,ser1、ser2是控制器所依賴的服務(wù),以聲明的方式注入到控制器中。例子中注入了$scope(數(shù)據(jù)模型)、$http(封裝了ajax的服務(wù))。這兩個(gè)服務(wù)都是angularjs內(nèi)置服務(wù),服務(wù)是可以自定義的。$scope.phones = data; 在這個(gè)地方后臺返回的數(shù)據(jù)應(yīng)用到了數(shù)據(jù)模型中,這時(shí)前臺UI會自動響應(yīng)更新。,.,模塊化, name | test var myAppModule = angular.module(myApp,); myAppModule.filter(test,function() return function(name) return hello, +name+!; ; ); myAppModule.controller(myAppCtrl,$scope,function($scope) $=xingoo; ); ,首先,通過全局變量angular創(chuàng)建模塊myAppModule 第一個(gè)參數(shù)是綁定的應(yīng)用app名稱,這個(gè)app標(biāo)識了頁面中angular的入口點(diǎn),類似main函數(shù)的作用。第二個(gè)參數(shù)里面標(biāo)識了依賴的模塊。模塊化作用: 1 增加了模塊的可重用性2 通過定義模塊,實(shí)現(xiàn)加載順序的自定義3 在單元測試中,不必加載所有的內(nèi)容,.,var PhoneListCtrl = $scope, $http, function($scope, $http) $http.get(./json/test-1.json) .success(function(data) $scope.phones = data; ); $scope.sortType = age; ;,PhoneListCtrl 控制器??刂破鞯穆暶鞣绞绞?var c1=ser1,ser2,functionc1是控制器的名字,ser1、ser2是控制器所依賴的服務(wù),以聲明的方式注入到控制器中。例子中注入了$scope(數(shù)據(jù)模型)、$http(封裝了ajax的服務(wù))。這兩個(gè)服務(wù)都是angularjs內(nèi)置服務(wù),服務(wù)是可以自定義的。$scope.phones = data; 在這個(gè)地方后臺返回的數(shù)據(jù)應(yīng)用到了數(shù)據(jù)模型中,這時(shí)前臺UI會自動響應(yīng)更新。,.,AngularJS 指令,AngularJS有一套完整的、可擴(kuò)展的、用來幫助web應(yīng)用開發(fā)的指令集,它使得HTML可以轉(zhuǎn)變成“特定領(lǐng)域語言(Domain Specific Language,簡稱DSL)”,是用來擴(kuò)展瀏覽器能力的技術(shù)之一,在DOM編譯期間,和HTML關(guān)聯(lián)著的指令會被檢測到,并且被執(zhí)行,這使得指令可以為DOM指定行為,或者改變它。AngularJS通過稱為指令的新屬性來擴(kuò)展的HTML,帶有前綴ng-,我們也可以稱之為“指令屬性”,它就是綁定在DOM元素上的函數(shù),可以調(diào)用方法、定義行為、綁定controller及$scope對象、操作DOM,等等。,例如:ng-app ng-controller ng-src xxx ng-repeat ng-model 等,.,AngularJS 指令,myAppModule.directive(xingoo,function() return restrict:AECM, template:hello my directive, repalce:true );,一般指令的寫法:,1 restrict:定義了標(biāo)簽的使用方法,一共四種,分別是AECM2 template:定義標(biāo)簽的模板。里面是用于替換自定義標(biāo)簽的字符串3 repalce:是否支持替換4 transclude:是否支持內(nèi)嵌,.,如何使用指令,A attribute屬性:當(dāng)做屬性來使用 eg: E element元素:當(dāng)做標(biāo)簽元素來使用 eg: C class類:當(dāng)做CSS樣式來使用 eg: M comments注釋:當(dāng)做注釋使用(這種方式在1.2版本下親測不可用?。?eg: 注:一般來說推薦,當(dāng)做屬性和元素來使用。當(dāng)想要在現(xiàn)有的html標(biāo)簽上擴(kuò)展屬性時(shí),采用屬性的方式。當(dāng)想要自定義標(biāo)簽時(shí),采用標(biāo)簽的形式。想要使用那種方式,必須要在定義directive中的restrict里 面 聲明對應(yīng)的字母。,.,指令內(nèi)嵌使用,使用transclude屬性,設(shè)置為true。 并使用ng-transclude屬性,定義內(nèi)部嵌套的位置。transclude的作用可以簡化地理解成:把標(biāo)簽替換成我們所編寫的HTML模板,但是標(biāo)簽內(nèi)部的內(nèi)容保持不變。,.,如何使用指令,link,添加相應(yīng)事件,方法中有三個(gè)參
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年醫(yī)療醫(yī)院醫(yī)療廢物檢測合同
- 2025年社交網(wǎng)絡(luò)平臺安全監(jiān)管項(xiàng)目可行性研究報(bào)告
- 2025年高端定制家具生產(chǎn)企業(yè)項(xiàng)目可行性研究報(bào)告
- 2025年多功能文化活動中心建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年社交網(wǎng)絡(luò)數(shù)據(jù)分析平臺項(xiàng)目可行性研究報(bào)告
- 2025年新能源車基礎(chǔ)設(shè)施升級項(xiàng)目可行性研究報(bào)告
- 中俄導(dǎo)航協(xié)議書
- 網(wǎng)貸中介合同范本
- 停工結(jié)算協(xié)議書
- 云計(jì)算環(huán)境下的滲透測試工程師面試要點(diǎn)
- 高校物業(yè)安全培訓(xùn)內(nèi)容課件
- (正式版)DB33∕T 1430-2025 《海塘安全監(jiān)測技術(shù)規(guī)程》
- 醫(yī)藥競聘地區(qū)經(jīng)理匯報(bào)
- 水庫調(diào)度操作規(guī)程模板
- 產(chǎn)科護(hù)士長年終總結(jié)
- 酒店情況診斷報(bào)告
- 2025年夏季山東高中學(xué)業(yè)水平合格考地理試卷試題(含答案)
- DBJ04-T483-2025 海綿型城市道路與廣場設(shè)計(jì)標(biāo)準(zhǔn)
- 農(nóng)藥運(yùn)輸儲存管理制度
- TD/T 1036-2013土地復(fù)墾質(zhì)量控制標(biāo)準(zhǔn)
- 童年的閱讀測試題及答案
評論
0/150
提交評論