AngularJS中的DOM操作用法分析_AngularJS

來源:互聯網
上載者:User

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

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

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

如果你感到很難改變習慣,那麼考慮從你的網頁中移除 jQuery 吧。真的,AngularJS 中的 $http 服務非常強大,基本可以替代 jQuery 的 ajax 函數,而且 AngularJS 內嵌了 jQLite —— 它內部實現的一個 jQuery 子集,包含了常用的 jQuery DOM 操作方法,事件綁定等等。但這並不是說用了AngularJS 就不能用 jQuery 了。如果你的網頁有載入 jQuery 那麼 AngularJS 會優先採用你的 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 社區貢獻的ngshowcase。 AngularJS 的社區很活躍,生態系統健全。

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.