AngularJS中的DOM操作用法分析
本文實例講述了AngularJS中的DOM操作用法。分享給大家供大家參考,具體如下:
在angular中使用第三方插件時最好都封裝到指令(directives)中去,DOM操作也最好都解構(gòu)到指令中。
避免使用 jQuery 來操作 DOM,包括增加元素節(jié)點,移除元素節(jié)點,獲取元素內(nèi)容,隱藏或顯示元素。你應(yīng)該使用 directives 來實現(xiàn)這些動作,有必要的話你還要編寫自己的 directives。
如果你感到很難改變習(xí)慣,那么考慮從你的網(wǎng)頁中移除 jQuery 吧。真的,AngularJS 中的 $http 服務(wù)非常強(qiáng)大,基本可以替代 jQuery 的 ajax 函數(shù),而且 AngularJS 內(nèi)嵌了 jQLite —— 它內(nèi)部實現(xiàn)的一個 jQuery 子集,包含了常用的 jQuery DOM 操作方法,事件綁定等等。但這并不是說用了AngularJS 就不能用 jQuery 了。如果你的網(wǎng)頁有載入 jQuery 那么 AngularJS 會優(yōu)先采用你的 jQuery,否則它會 fall back 到 jQLite。
需要自己編寫 directives 的情況通常是當(dāng)你使用了第三方的 jQuery 插件。因為插件在 AngularJS 之外對表單值進(jìn)行更改,并不能即時反應(yīng)到 Model 中。例如我們用得比較多的 jQueryUI datepicker 插件,當(dāng)你選中一個日期后,插件會將日期字符串填到 input 輸入框中。View 改變了,卻并沒有更新 Model,因為 $('.datepicker').datepicker(); 這段代碼不屬于 AngularJS 的管理范圍。我們需要編寫一個directive 來讓 DOM 的改變即時更新到 Model 里。
var directives = angular.module('directives', []);
directives.directive('datepicker', function() {
return function(scope, element, attrs) {
element.datepicker({
inline: true,
dateFormat: 'dd.mm.yy',
onSelect: function(dateText) {
var modelPath = $(this).attr('ng-model');
putObject(modelPath, scope, dateText);
scope.$apply();
}
});
}
});
然后在 HTML 中引入這個 direcitve
<input type="text" datepicker ng-model="myObject.myDateValue" />
說白了 directive 就是在 HTML 里寫自定義的標(biāo)簽屬性,達(dá)到插件的作用。這種聲明式的語法擴(kuò)展了 HTML。
需要說明的是,有一個 AngularUI 項目提供了大量的 directive 給我們使用,包括 Bootstrap 框架中的插件以及基于 jQuery 的其他很熱門的 UI 組件。還有http://www.ngnice.com 社區(qū)貢獻(xiàn)的ngshowcase。 AngularJS 的社區(qū)很活躍,生態(tài)系統(tǒng)健全。
希望本文所述對大家AngularJS程序設(shè)計有所幫助。
相關(guān)文章
解決angularJS中input標(biāo)簽的ng-change事件無效問題
今天小編就為大家分享一篇解決angularJS中input標(biāo)簽的ng-change事件無效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Angular5.0 子組件通過service傳遞值給父組件的方法
這篇文章主要介紹了Angular5.0 子組件通過service傳遞值給父組件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
angular4響應(yīng)式表單與校驗實現(xiàn)demo
這篇文章主要介紹了angular4響應(yīng)式表單與校驗實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
AngularJS實現(xiàn)的根據(jù)數(shù)量與單價計算總價功能示例
這篇文章主要介紹了AngularJS實現(xiàn)的根據(jù)數(shù)量與單價計算總價功能,涉及AngularJS事件響應(yīng)與數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下2017-12-12

