javascript - 在 foreach 列表之后运行脚本

标签 javascript knockout.js

我正在为我的 knockout 应用程序菜单使用一个名为 Jarvismenu 的外部 javascript 库,为了使菜单正常工作(单击它们时折叠/展开父菜单项)需要在加载菜单后执行脚本。

菜单看起来像这样:

<nav>
  <ul data-bind="foreach: reports">
    <li>
      <a href="#" data-bind="attr: {title: title}"><span class="menu-item-parent" data-bind="text:title"></span></a>
      <ul data-bind="foreach: reportItems">
        <li>
          <a href="#" data-bind="attr: {title: title}, text: title"></a>
        </li>
      </ul>
    </li>            
  </ul>
</nav>

如何在 Knockout 3.3.0 中实现这一目标?

最佳答案

您可以将其他数据发送到您的 foreach 绑定(bind)中。在您的情况下,您会对 afterRender 选项感兴趣。

你的代码看起来像这样

<nav>
  <ul data-bind="foreach: { data: reports, afterRender: functionToCallWhenReportsRendered}">
    <li>
      <a href="#" data-bind="attr: {title: title}"><span class="menu-item-parent" data-bind="text:title"></span></a>
      <ul data-bind="foreach: { data: reportItems, afterRender: functionToCallWhenItemsRendered}">
        <li>
          <a href="#" data-bind="attr: {title: title}, text: title"></a>
        </li>
      </ul>
    </li>            
  </ul>
</nav>

这里是更多文档的链接:

http://knockoutjs.com/documentation/foreach-binding.html

关于javascript - 在 foreach 列表之后运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30666500/

相关文章:

JavaScript/HTML : Load Html into FrameSet with onunload event

javascript - 如何使用 jquery 动态地将文本从文本框放入 div 内的标签

javascript - 如何从 knockout 数组中选取索引值

javascript - knockout.js 输入框事件更改 - 传递旧值

javascript - 页面激活时自动点击 knockout

javascript - 从 js Map 解析文本

javascript - 如何使用 for 循环删除 div 并延迟 5 秒

javascript - Angular promise

knockout.js - knockout Js : Get the bound element from a model instance

knockout.js - KnockoutJS - 可观察对象的可观察数组