我现在已经接近解决这个问题,并认为这很简单,但是,必定会有一些我遗漏的东西......
我在ko.observableArray中有一个多维数组,其中是:
网站 - >公司 - >工作
对于我的数据绑定,data-bind="text: Site().Name"
很好,正如您所期望的那样。但是,我无法通过data-bind="text: Site().Company().Name"
或data-bind="text: Site().Company.Name"
访问子数组。
有没有其他人有同样的问题,或者有什么我做错了吗?这些对象100%正确加载到数组中,因为我可以在控制台中看到它们。
答案 0 :(得分:9)
如果我正确理解您的问题并且Site
包含一个Company
个{oborableArray对象,并且每个Company
对象包含一个Job
对象的observableArray,那么您的方法将不会工作。
data-bind="text: Site().Company().Name"
正在尝试获取恰好包含Name
个对象的observableArray的Company
属性。但是,您可以写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 -->
有关详细信息,请参阅http://knockoutjs.com/documentation/foreach-binding.html。
如果我误解了你的问题,希望这就是你要找的并道歉。