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

首頁 > 編程 > JavaScript > 正文

Angular組件化管理實(shí)現(xiàn)方法分析

2019-11-19 17:07:24
字體:
供稿:網(wǎng)友

本文實(shí)例分析了Angular組件化管理實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

在做sass產(chǎn)品頁面的時候,往往每個頁面的header和footer都是一樣的,還有最近我做的頁面,類似datetimepicker這種組件,其實(shí)都是可以復(fù)用的代碼,所以如果能把這些公用的UI組件提取出來,對于維護(hù)就會方便很多啦!!

angular框架就支持這種組件化管理,不過也有優(yōu)缺點(diǎn),我先來說實(shí)現(xiàn)方法哈!

index.html:沒有用到路由,所以js都是src生引進(jìn)來的

<head>  <title>template模塊化</title>  <script type="text/javascript" src="js/lib/jquery.min.js"></script>  <script type="text/javascript" src="js/lib/angular.min.js"></script>  <script type="text/javascript" src="js/angular-util.js"></script>  <script type="text/javascript" src="js/header.js"></script>  <!-- 單頁加載 -->  <script type="text/javascript" src="js/index.js"></script></head><body ng-app="frameApp" ng-controller="frameCtrl">  <header frame-header></header>  <div ng-click="a1()">click</div>  <div>{{ default }}</div></body>

header.js:用閉包封裝了header組件指向template模板,這里面的A指的是上面html里frame-header的屬性,在這里面的link還可以調(diào)用當(dāng)前作用域內(nèi)的方法

(function () {  var header = angular.module("header",[]);  header.directive('frameHeader',function(){    return {      restrice: 'A',      templateUrl: 'template.html',      replace: false,      link: function ($scope, iElm, iAttrs) {        $scope.navigateTo = function(){          console.log($scope.aa)        }      }    }  });})();

header.html:模板部分,我簡單的寫了個導(dǎo)航

<ul>  <li ng-click="navigateTo('index')"><a href="index.html" rel="external nofollow" >導(dǎo)航1</a></li>  <li><a href="page1.html" rel="external nofollow" >導(dǎo)航2</a></li>  <li>導(dǎo)航3</li>  <li>導(dǎo)航4</li></ul>

index.js:引入header模塊

var myApp = angular.module("frameApp",['utilModule','header']);myApp.controller('frameCtrl',  ['$scope','utilService',  function($scope,utilService){    $scope.aa = 'yyyyyyyyyyy'    $scope.a1 = function(){      utilService.lemon()    };    $scope.default = 'this is default'  }]);

這樣一來,大功告成啦就!每個頁面只要<header frame-header></header>這個標(biāo)簽,就能引入頭部導(dǎo)航了!

不過這種組件化的引入方式,我個人并不推薦使用在引入header和footer,因?yàn)檫@樣的話,相當(dāng)于每個頁面都會加載一遍templat.html很影響速度,我建議,在引入datetimepicker這樣的組件的時候在使用!因?yàn)檫@種小組件是按需加載的,用得著再加載,不會影響頁面響應(yīng)效率。

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平安县| 沂源县| 莫力| 霍邱县| 邯郸市| 文登市| 巴青县| 时尚| 广平县| 盐源县| 安丘市| 台山市| 汽车| 漳平市| 武汉市| 万山特区| 锦屏县| 定日县| 六枝特区| 竹山县| 玉屏| 邵武市| 容城县| 邛崃市| 金湖县| 昌邑市| 元谋县| 长岛县| 烟台市| 杭锦旗| 南平市| 盐城市| 亳州市| 涿州市| 兴隆县| 甘泉县| 巴南区| 辽阳县| 汉寿县| 吐鲁番市| 高唐县|