Knockout JS - 多维observableArrays并显示子数组数据

Chr*_*xon 4 javascript jquery mvvm knockout.js

我现在已经接近解决这个问题并认为它很简单,但是,必须有一些我想念的东西......

我在ko.observableArray中有一个多维数组,其中是:

网站 - >公司 - >工作

对于我的数据绑定,data-bind="text: Site().Name"很好,正如您所期望的那样.但是,我无法通过data-bind="text: Site().Company().Name"或访问子数组data-bind="text: Site().Company.Name".

有没有其他人有同样的问题,或者有什么我做错了什么?这些对象100%正确加载到数组中,因为我可以在控制台中看到它们.

Mar*_*son 9

如果我正确理解你的问题并且a Site包含一个observableArray Company对象,并且每个Company对象都包含一个observableArray Job对象,那么你的方法将不起作用.

data-bind="text: Site().Company().Name"试图获得Name碰巧包含Company对象的observableArray 的属性.但是你可以写data-bind="text: Site().Company()[0].Name"一下来获取第一个的名字Company.

更常见的方法是遍历项目.就像是:

<!-- ko with: Site -->
Site name is <span data-bind="text: Name"/>
<ul>
  <!-- ko foreach: Company -->
    <li>Company name is <span data-bind="text: Name"/>
      <!-- ko foreach: Job -->
        <li>Job name is <span data-bind="text: Name"/>
        </li>
      <!-- /ko -->
    </li>
  <!-- /ko -->
</ul>
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见http://knockoutjs.com/documentation/foreach-binding.html.

希望这是你正在寻找的,如果我误解了你的问题,我会道歉.