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

首頁 > 編程 > JavaScript > 正文

AngularJS中的DOM操作用法分析

2019-11-19 19:04:15
字體:
來源:轉載
供稿:網友

本文實例講述了AngularJS中的DOM操作用法。分享給大家供大家參考,具體如下:

在angular中使用第三方插件時最好都封裝到指令(directives)中去,DOM操作也最好都解構到指令中。

避免使用 jQuery 來操作 DOM,包括增加元素節(jié)點,移除元素節(jié)點,獲取元素內容,隱藏或顯示元素。你應該使用 directives 來實現這些動作,有必要的話你還要編寫自己的 directives。

如果你感到很難改變習慣,那么考慮從你的網頁中移除 jQuery 吧。真的,AngularJS 中的 $http 服務非常強大,基本可以替代 jQuery 的 ajax 函數,而且 AngularJS 內嵌了 jQLite ―― 它內部實現的一個 jQuery 子集,包含了常用的 jQuery DOM 操作方法,事件綁定等等。但這并不是說用了AngularJS 就不能用 jQuery 了。如果你的網頁有載入 jQuery 那么 AngularJS 會優(yōu)先采用你的 jQuery,否則它會 fall back 到 jQLite。

需要自己編寫 directives 的情況通常是當你使用了第三方的 jQuery 插件。因為插件在 AngularJS 之外對表單值進行更改,并不能即時反應到 Model 中。例如我們用得比較多的 jQueryUI datepicker 插件,當你選中一個日期后,插件會將日期字符串填到 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 里寫自定義的標簽屬性,達到插件的作用。這種聲明式的語法擴展了 HTML。

需要說明的是,有一個 AngularUI 項目提供了大量的 directive 給我們使用,包括 Bootstrap 框架中的插件以及基于 jQuery 的其他很熱門的 UI 組件。還有http://www.ngnice.com 社區(qū)貢獻的ngshowcase。 AngularJS 的社區(qū)很活躍,生態(tài)系統(tǒng)健全。

希望本文所述對大家AngularJS程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹤庆县| 阿合奇县| 明溪县| 章丘市| 西峡县| 永春县| 定边县| 神农架林区| 芷江| 闸北区| 湄潭县| 米脂县| 银川市| 永昌县| 久治县| 扶风县| 西平县| 富阳市| 望都县| 纳雍县| 皋兰县| 湄潭县| 柳州市| 进贤县| 库尔勒市| 杨浦区| 新干县| 衡南县| 谢通门县| 衡阳市| 平山县| 土默特左旗| 陕西省| 浠水县| 大新县| 霍林郭勒市| 英山县| 天长市| 射洪县| 康乐县| 安吉县|