博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngualrJS中制作一个有关菜单的Directive
阅读量:6671 次
发布时间:2019-06-25

本文共 1839 字,大约阅读时间需要 6 分钟。

 

通常我们这样写一个菜单:

 

菜单项是否高亮显示取决于controller中的highlight方法。

 

vm.highlight = funciton(path){    return $locaiton.path().substr(0, path.lenght) === path;}

 

如果以Directive的方式会更简洁。

 

 

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){                        //Customers                        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);}());

 

转载地址:http://vwlxo.baihongyu.com/

你可能感兴趣的文章
【Python学习笔记】字典dict
查看>>
IOS越狱后必做的工作
查看>>
联想E430不能从u盘启动【解决办法】
查看>>
jquery提交表单jquery.form.js
查看>>
zookeeper分布式锁避免羊群效应(Herd Effect)
查看>>
ipset高大上性能果断将nf-HiPac逼下课
查看>>
自己办理积分入户深圳—经验之谈
查看>>
LR http 接口测试模板
查看>>
安家在 51CTO
查看>>
RHEL5下安装和配置LotusNotesClient8.5
查看>>
oracle 执行一条查询语句,把数据加载到页面或者前台发生的事情
查看>>
轮播图记录篇
查看>>
jQuery 前端实现手机验证码
查看>>
前尘浮华一场梦 NOI2018 游记
查看>>
学习HTML基础的总结
查看>>
[2018.12.16]BZOJ1041 [HAOI2008]圆上的整点
查看>>
PMM安装-第一篇
查看>>
字典变成有序字典
查看>>
java/Android 接口调用的几种写法
查看>>
洛谷 P1373 小a和uim之大逃离 Label:dp 不会
查看>>