Knockout foreach子阵列没有显示出来

时间:2013-09-12 13:33:08

标签: javascript arrays data-binding knockout.js knockout-2.0

供参考,这里是the jsfiddle of my problem.

问题概述:

我在UI中并排有两个列表,但第二个列表实际上是第一个列表中所选项目上的一个项目数组。所以数据结构是这样的......

var VM = {
  listOfStuff: [
    {
      subItems: [{},{}]
    },
    {
      subItems: [{},{},{}]
    }
  ]
}
用户界面看起来像......

<ul id="list-of-stuff">
  <li></li>
</ul>
<ul id="list-of-subitems-on-list-of-stuff">
  <li></li>
</ul>

问题在于我在“东西清单”中使用了淘汰赛的约束力&#39;它工作得很好,但子项列表永远不会出现。没有绑定错误或任何其他明显的问题,所以我不确定我做错了什么......

1 个答案:

答案 0 :(得分:1)

通常最简单的方法是使用with绑定来管理对子对象的访问。 Here's a working fiddle

<h1>SubItem List</h1>
<!-- ko with: currentStuff -->
    <ul id="subitem-list" data-bind="foreach: subItems">
        <li data-bind="text:number"></li>
    </ul>
<!-- /ko -->

初始化currentStuff非常重要;如果绑定值为null或未定义,with绑定将不呈现任何html。