真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Angular.JS如何通過(guò)指令操作DOM

這篇文章給大家分享的是有關(guān)Angular.JS如何通過(guò)指令操作DOM的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司專注于長(zhǎng)春企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。長(zhǎng)春網(wǎng)站建設(shè)公司,為長(zhǎng)春等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

在指令而非在控制器中操作DOM

相信大家在頁(yè)面處理中,難免會(huì)遇到操作DOM的情況,在AngularJS中,對(duì)DOM的操作是在指令而非控制器中完成的。

AngularJS強(qiáng)調(diào)隔離的思想:把復(fù)雜的邏輯和操作放在指令或服務(wù)中,控制器作為視圖和$scope之間的橋梁,僅僅用來(lái)存儲(chǔ)數(shù)據(jù)模型。

jqLite

為了便于DOM操作,AngularJS內(nèi)部封裝了angular.element,如果現(xiàn)有項(xiàng)目中已經(jīng)引入的jQuery,angular.element相當(dāng)于jQuery函數(shù)的別名,否則,angular.element代表AngularJS對(duì)jQuery封裝的一個(gè)子集,稱為”jQuery lite”或者jqLite。jqLite不具備jQuery全部方法,詳見(jiàn)AngularJS官方文檔 angular.element。

link-function

link-function可以注冊(cè)DOM監(jiān)聽(tīng)器,同時(shí)更新DOM,更多l(xiāng)ink-function介紹參考這篇文章AngularJS Custom-Directives link-function guide

指令代碼

一個(gè)引入jQuery操作DOM的指令如下:

webApp.directive("detailTopStick", ["$timeout", "$window", function ($timeout, $window) {
 return {
 restrict: "A",
 link: function (scope) {
 $timeout(function () {
 var navbar = $(".navbar-nav"); 
 var navbarOffsetTop = navbar.offset().top;
 var headerInfo = $(".header-info");
 var headerInfoMarginBottom = parseInt(headerInfo.css("margin-bottom"));
 var navbarHeight = parseInt(navbar.css("height"));
 
 angular.element($window).bind("resize", function () { // 窗口綁定resize事件
  navbar.css("width", headerInfo.width());
  navbarOffsetTop = navbar.offset().top;
  scope.$apply();
 });
 
 angular.element($window).bind("scroll", function () {
  if ($window.scrollY > navbarOffsetTop) {
  navbar.css("width", headerInfo.width());
  navbar.addClass("detail-navbar-fix");
  headerInfo.css("margin-bottom", headerInfoMarginBottom + navbarHeight);
  }
  else {
  navbar.removeClass("detail-navbar-fix");
  headerInfo.css("margin-bottom", headerInfoMarginBottom);
  }
  scope.$apply();
 });
 
 navbar.on("click", function () {
  if ($window.scrollY > navbarOffsetTop) {
  $window.scrollTo(0, navbarOffsetTop);
  }
 });
 });
 }
 };
}]);

如果未引入jquery,可以這樣獲取元素:angular.element(document.querySelector(“.class-name”))

感謝各位的閱讀!關(guān)于“Angular.JS如何通過(guò)指令操作DOM”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


當(dāng)前標(biāo)題:Angular.JS如何通過(guò)指令操作DOM
分享鏈接:http://weahome.cn/article/igceci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部