在angular2中实现子菜单

时间:2017-01-17 09:18:03

标签: javascript angular

我的webApp中有一个菜单,我想添加一个子菜单。为了实现该功能,我需要将click事件附加到a标记,并为每个菜单添加has-sub类。我怎么能实现这一目标? 我应该将(click)事件添加到a标记的所有内容中。还是有更好的解决方案?

我应该在该组件的javascript端添加什么内容?

由于

<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>

1 个答案:

答案 0 :(得分:0)

routerLink="#"无效 要么使它成为正常<a href="#">(没有routerLink) 或传递注册的路线路径,如

<a routerLink="/rootRoute/childRoute"

有关如何使用路由器,请参阅https://angular.io/docs/ts/latest/guide/router.html

<强>更新

要仅将点击处理程序添加到class="has-sub"的元素,您可以使用

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

这种方式myClickHandler($event)仅在元素具有class="has-sub"时调用,否则调用$event.preventDefault()(因为返回值false