当前位置: 首页 > 编程笔记 >

AngualrJS中的Directive制作一个菜单

虞裕
2023-03-14
本文向大家介绍AngualrJS中的Directive制作一个菜单,包括了AngualrJS中的Directive制作一个菜单的使用技巧和注意事项,需要的朋友参考一下

说下我经常写菜单的方式:

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

以上内容是针对AngualrJS中的Directive制作一个菜单的相关知识,希望对大家有所帮助。

 类似资料:
  • 本文向大家介绍AngualrJS中每次$http请求时的一个遮罩层Directive,包括了AngualrJS中每次$http请求时的一个遮罩层Directive的使用技巧和注意事项,需要的朋友参考一下 AngularJS是一款非常强大的前端MVC框架。在AngualrJS中使用$http每次向远程API发送请求,等待响应,这中间有些许的等待过程。如何优雅地处理这个等待过程呢? 如果我们在等待过程

  • 本文向大家介绍AngularJS中的Directive自定义一个表格,包括了AngularJS中的Directive自定义一个表格的使用技巧和注意事项,需要的朋友参考一下 先给大家说下表格的需求: ● 表格结构 ● 点击某个th,就对该列进行排序 ● 可以给表头取别名 ● 可以设置某个列是否显示 ● 表格下方有一行显示总行数 我们希望表格按如下方式展示: 以上,datasource的数据源来自co

  • sp_get_menu($id,$menu_root_ul_id,$filetpl,$foldertpl,$ul_class,$li_class,$menu_root_ul_class,$showlevel,$dropdown) 功能: 生成指定ID的导航 参数: $id:导航id $menu_root_ul_id:菜单根节点ul标签的id属性值 $filetpl:没有子菜单的菜单的html模板

  •  点下鼠标右键后呼叫的 KAG 的游戏界面。  例如使用右键来调出存储/读取画面。 总之先上范例  调用右键菜单的指令是 rclick 。使用这个指令、可以设定点下右键后呼叫的剧本段落。此外,也可以不使用呼叫(调用菜单后,使用return可以返回游戏),而是直接跳转到某个标签(右键跳跃后无法返回,等同于jump)。  例如,在 rlick.ks 里写入以下内容。 例: *rclick @rclic

  • 本文向大家介绍javascript制作的滑动图片菜单,包括了javascript制作的滑动图片菜单的使用技巧和注意事项,需要的朋友参考一下 方法很简单,特效非常棒,这里就先不多废话了,直接上代码 再来一个网友实现的滑动菜单特效 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 问题内容: 这对我有用(服务器端验证示例): AngularJS:与服务器端验证集成 但是,我决定问其他问题。 在该示例中,我们使用 unique-email 指令: 但是在创建指令时,我们使用 uniqueEmail : 为什么?以某种方式命名约定/规则是否与之相关?angular如何知道在哪里看以及如何将彼此连接? 我只是想知道,因为当我使用它不起作用。直到我键入“唯一电子邮件” 同样如果我键