AngualrJS中的Directive制作一個菜單
說下我經(jīng)常寫菜單的方式:
<ul>
<li data-ng-class="{'active': highlight('/orders')}">
<a href="#/orders">Orders</a>
</li>
</ul>
菜單項是否高亮顯示取決于controller中的highlight方法。
vm.highlight = funciton(path){
return $locaiton.path().substr(0, path.lenght) === path;
}
如果以Directive的方式會更簡潔。
<ul menu-highlighter highlight-class-name="active"> <li><a href="#/customers">Customers</a></li> <li><a href="#/orders">Customers</a></li> <li><a href="#/about">Customers</a></li> </ul>
Directive大致是:
(function(){
var injectParams = ['$location'];
var menuHighlighter = function($location){
var link = function(scope, element){
function setActive(){
var path = $location.path();
var className = scope.highlightClassName || 'active';
if(path){
angular.forEac(element.find('li'), function(li){
//<a href="#/customers">Customers</a>
var anchor = li.querySelector('a');
//#/customers
var href=(anchor && anchor.href) ? anchor.href : anchor.getAttribute('data-href').replace('#','');
//customers
var trimmedHref = href.substr(href.indexOf('#/')+1, href.length);
var basePath = path.substr(0, trimmedHref.length);
if(trimmedHref === basePath){
angular.element(li).addClass(className);
} else {
angular.element(li).removeClass(className);
}
});
}
}
setActive();
scope.$on('$locationChangeSuccess', setActive);
};
return {
restrict: 'A',
scope: {
highlightClassName: '@'
},
link: link
}
};
menuHighlighter.$inject = injectParams;
angular.module('my.directives')
.directive('menuHighlighter', menuHighlighter);
}());
以上內(nèi)容是針對AngualrJS中的Directive制作一個菜單的相關(guān)知識,希望對大家有所幫助。
相關(guān)文章
用Angular實時獲取本地Localstorage數(shù)據(jù),實現(xiàn)一個模擬后臺數(shù)據(jù)登入的效果
這篇文章主要介紹了用ANGULAR實時獲取本地LOCALSTORAGE數(shù)據(jù),實現(xiàn)一個模擬后臺數(shù)據(jù)登入的效果的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11
Angular 根據(jù) service 的狀態(tài)更新 directive
Angular JS (Angular.JS) 是一組用來開發(fā)Web頁面的框架、模板以及數(shù)據(jù)綁定和豐富UI組件。本文給大家介紹Angular 根據(jù) service 的狀態(tài)更新 directive,需要的朋友一起學(xué)習(xí)吧2016-04-04
AngularJs學(xué)習(xí)第八篇 過濾器filter創(chuàng)建
這篇文章主要介紹了AngularJs學(xué)習(xí)第八篇 過濾器filter創(chuàng)建的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06
利用Angular+Angular-Ui實現(xiàn)分頁(代碼加簡單)
這篇文章主要介紹了利用Angular+Angular-Ui實現(xiàn)分頁,利用Angular+Angular-Ui實現(xiàn)的分頁分頁代碼更加簡單,更加容易懂哦,相信本文的內(nèi)容對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03
Angular通過angular-cli來搭建web前端項目的方法
這篇文章主要介紹了Angular通過angular-cli來搭建web前端項目的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07

