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

首頁 > 語言 > JavaScript > 正文

Angular.JS通過指令操作DOM的方法

2024-05-06 15:17:24
字體:
來源:轉載
供稿:網友

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

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

AngularJS強調隔離的思想:把復雜的邏輯和操作放在指令或服務中,控制器作為視圖和$scope之間的橋梁,僅僅用來存儲數據模型。

jqLite

為了便于DOM操作,AngularJS內部封裝了angular.element,如果現有項目中已經引入的jQuery,angular.element相當于jQuery函數的別名,否則,angular.element代表AngularJS對jQuery封裝的一個子集,稱為”jQuery lite”或者jqLite。jqLite不具備jQuery全部方法,詳見AngularJS官方文檔 angular.element。

link-function

link-function可以注冊DOM監聽器,同時更新DOM,更多link-function介紹參考這篇文章AngularJS Custom-Directives link-function guide

指令代碼

一個引入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”))

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對錯新站長站的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 兖州市| 新巴尔虎左旗| 繁昌县| 安陆市| 宜昌市| 千阳县| 甘南县| 鹤山市| 久治县| 砀山县| 柘荣县| 金山区| 嵊州市| 郑州市| 新巴尔虎右旗| 丰顺县| 泰兴市| 伽师县| 呼图壁县| 郴州市| 怀仁县| 海晏县| 阳新县| 临夏市| 莆田市| 施秉县| 克什克腾旗| 平利县| 清水县| 平塘县| 密云县| 秦皇岛市| 汽车| 通道| 水富县| 九龙城区| 丹阳市| 益阳市| 双桥区| 庆阳市| 建平县|