Angular組件化管理實(shí)現(xiàn)方法分析
本文實(shí)例分析了Angular組件化管理實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
在做sass產(chǎn)品頁面的時(shí)候,往往每個(gè)頁面的header和footer都是一樣的,還有最近我做的頁面,類似datetimepicker這種組件,其實(shí)都是可以復(fù)用的代碼,所以如果能把這些公用的UI組件提取出來,對(duì)于維護(hù)就會(huì)方便很多啦??!
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:模板部分,我簡(jiǎn)單的寫了個(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'
}]);
這樣一來,大功告成啦就!每個(gè)頁面只要<header frame-header></header>這個(gè)標(biāo)簽,就能引入頭部導(dǎo)航了!
不過這種組件化的引入方式,我個(gè)人并不推薦使用在引入header和footer,因?yàn)檫@樣的話,相當(dāng)于每個(gè)頁面都會(huì)加載一遍templat.html很影響速度,我建議,在引入datetimepicker這樣的組件的時(shí)候在使用!因?yàn)檫@種小組件是按需加載的,用得著再加載,不會(huì)影響頁面響應(yīng)效率。
更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)》
希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用AngularJS編寫多選按鈕選中時(shí)觸發(fā)指定方法的指令代碼詳解
最近做項(xiàng)目時(shí)遇到了需要用到多選按鈕選中觸發(fā)事件的功能,小編試著手寫一個(gè)指令,具體實(shí)現(xiàn)代碼大家參考下本文吧2017-07-07
AngularJs 國(guó)際化(I18n/L10n)詳解
本文主要介紹AngularJs 國(guó)際化的知識(shí),這里整理了詳細(xì)的資料來講解國(guó)際化,有需要的小伙伴可以參考下2016-09-09
后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法
這篇文章主要介紹了后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-07-07
angular5 httpclient的示例實(shí)戰(zhàn)
本篇文章主要介紹了angular5 httpclient的示例實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
AngularJs Dependency Injection(DI,依賴注入)
本文主要介紹AngularJs Dependency Injection,這里整理了詳細(xì)資料及示例代碼有興趣的小伙伴可以參考下2016-09-09
Angular.Js中過濾器filter與自定義過濾器filter實(shí)例詳解
Angularjs過濾器是 angularjs非常棒的特性之一。有朝一日,你可能需要使用自定義過濾器,所以下面這篇文章主要給大家介紹了Angular.Js中過濾器filter與自定義過濾器filter的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05

