最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年03月17日 11:21:24   作者:lemon678  
這篇文章主要介紹了Angular組件化管理實(shí)現(xiàn)方法,結(jié)合具體實(shí)例分析了Angular模塊組件化管理以提高代碼復(fù)用性的實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下

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

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

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

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

<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>
  <!-- 單頁(yè)加載 -->
  <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:模板部分,我簡(jiǎn)單的寫(xiě)了個(gè)導(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'
  }]);

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

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

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

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

相關(guān)文章

最新評(píng)論

始兴县| 长沙县| 雷波县| 花莲市| 长垣县| 当阳市| 天台县| 德阳市| 榆林市| 东丽区| 盘山县| 阿拉善左旗| 唐山市| 台州市| 赫章县| 攀枝花市| 突泉县| 昭苏县| 丹棱县| 张掖市| 肃南| 富宁县| 句容市| 邹城市| 南开区| 保靖县| 锡林郭勒盟| 上林县| 连山| 迁安市| 柏乡县| 建瓯市| 屯门区| 顺平县| 金湖县| 黎川县| 边坝县| 海伦市| 余姚市| 饶阳县| 博野县|