javascript - knockout foreach 子数组未显示

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

问题是我在“列表”上使用了 knockout foreach 绑定(bind),它工作得很好,但子项目列表从未显示。没有绑定(bind)错误或任何其他明显的问题,所以我不确定我做错了什么......

最佳答案

使用 with 绑定(bind)来管理对子对象的访问通常是最简单的。 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很重要;如果 with 绑定(bind)的绑定(bind)值为 null 或未定义,则不会呈现任何 html。

关于javascript - knockout foreach 子数组未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18765779/

相关文章:

javascript - vue 2 如果值更改如何更新 v-model?

c# - 将 DataTemplate 绑定(bind)到 'outside' 属性

javascript - 使用下划线比较两个对象列表并获取唯一对象

javascript - 如何从 Safari 钥匙串(keychain)自动填充调用 ajax respond() 方法到服务器?

javascript - 无法使用 Chart.js 初始化饼图

javascript - 如果我没有先显式缓存它们,我的 JS 代码如何访问 DOM 元素?

ios - 如何在 Swift 3 中按字母顺序排列对象数组?

javascript - 如何填充数组的数组

c# - 将类对象绑定(bind)到 wpf 中的 ListView

javascript - 同步 XHR 弃用