【问题标题】:Knockout JS - Multidimensional observableArrays and displaying sub-array dataKnockout JS - 多维 observableArrays 和显示子数组数据
【发布时间】:2012-03-29 01:17:56
【问题描述】:

我现在快要疯了,我认为这很简单,但是,我一定缺少一些东西......

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

网站 -> 公司 -> 职位

对于我的数据绑定,data-bind="text: Site().Name" 没问题,正如您所料。但是,我无法通过data-bind="text: Site().Company().Name"data-bind="text: Site().Company.Name" 访问子数组。

有没有其他人遇到过同样的问题,或者我做错了什么?正如我在控制台中看到的那样,对象 100% 被正确加载到数组中。

【问题讨论】:

    标签: javascript jquery mvvm knockout.js


    【解决方案1】:

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

    data-bind="text: Site().Company().Name" 正在尝试获取恰好包含 Company 对象的 observableArray 的 Name 属性。但是,您可以写 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

    如果我误解了您的问题,希望这是您正在寻找的内容并道歉。

    【讨论】:

    • 谢谢你,我将继续使用 foreach 绑定(即使我的数组中只有 1 个元素),因为它似乎让生活更轻松。
    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    相关资源
    最近更新 更多