与Angular一起使用时,metisMenu默认为全部打开

时间:2016-02-29 13:40:40

标签: jquery angularjs

我将基于SB Admin 2模板的现有网站转换为使用Angular。 SB Admin 2使用metisMenu jquery插件。我首先使用ng-repeat来生成我的菜单项,其中似乎没有激活metisMenu。我按照S.O.解决了这个问题。解决方案通过创建自定义指令发布here,该指令在ng-repeat完成后激活metisMenu。

但是,我现在的问题是,所有菜单项父项和子项都默认在页面加载时展开,而不是默认为折叠。如果我点击关闭其中一个项目,它们都会缩小并且行为恢复正常。

这是我的html(请注意,我必须将默认的角度分隔符:{{}}更改为< {}>因为我使用的是Django):

// data.files is some json data I load via ajax in my controller
<div ng-controller="sidebarCtrl" class="navbar-default sidebar" id="sidebar" role="navigation">
  <div class="sidebar-nav navbar-collapse">
    <ul class="nav" id="side-menu">
      <li ng-repeat="item in data.files" metis="">
        <a href="#"><{ item.pretty_name }></a>
        <ul class="nav nav-second-level">
          <li>
              <a href="#">Second Level Item</a>
          </li>
          <li>
              <a href="#">Second Level Item</a>
          </li>
        </ul>
      </li>
    </ul>
  </div>
</div>

以下是在初始加载时看起来像是扩展了所有内容:

enter image description here

当使用SB Admin 2加载页面并使用Angular加载metisMenu时,如何将侧边栏菜单默认为全部关闭?如果我不使用ng-repeat并且只是手动生成菜单项,它们会按预期工作。只有在使用ng-repeat生成默认为全部展开的列表项之后才会这样做。

0 个答案:

没有答案