简体   繁体   English

在angular2中实现子菜单

[英]Implement submenu in angular2

I have a menu in my webApp and I wanna add a submenu.for implement that feature I need to attach click event to the a tag with has-sub class for every single menu. 我的webApp中有一个菜单,我想添加一个has-sub菜单。要实现该功能,我需要将click事件附加到每个菜单具有has-suba标签上。 how can I achieve that? 我该如何实现? I should add (click) event to the all of a tag. 我要补充(click)事件给所有的a标签。 or there's better solution? 还是有更好的解决方案?

What should I put in javascript side of that component? 我应该在该组件的javascript端放什么?

Thanks 谢谢

<ul>
    <li><a>test</a></li>
    <li>
      <a class="has-sub">test<icon name="plus" size="5"></icon></a>
      <div class="submenu">
        <ul class="container">
          <li><a href="#">test</a></li>
          <li><a href="#">test</a></li>
          <li><a href="#">test</a></li>
          <li><a href="#">test</a></li>
        </ul>
      </div>
    </li>
    <li><a href="#">test</a></li>
    <li><a href="#">test</a></li>
    <li><a href="#">test</a></li>
  </ul>

routerLink="#" is invalid. routerLink="#"无效。
Either make it a normal <a href="#"> (without routerLink ) or pass a registered route path like 使其成为普通的<a href="#"> (不带routerLink ),或者传递一个已注册的路由路径,例如

<a routerLink="/rootRoute/childRoute"

For how to use ther router see https://angular.io/docs/ts/latest/guide/router.html 有关如何使用路由器的信息,请参见https://angular.io/docs/ts/latest/guide/router.html

update 更新

To add a click handler only to element with class="has-sub" you can use 要将点击处理程序仅添加到具有class="has-sub"元素,可以使用

<a class="has-sub" href="#" #li1 (click)="li1.classList.contains('has-sub') ? myClickHandler($event) : false"

This way myClickHandler($event) is only called when the element has class="has-sub" , otherwise $event.preventDefault() is called (because of the return value false ) 这样,仅当元素具有class="has-sub"时才调用myClickHandler($event) ,否则将调用$event.preventDefault() (由于返回值false

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM