0

简单的问题:在 ViewModel 中,我有一个要迭代的值数组,我们称它们为“工作”。每个工作都是{type: myType, name: myName}.
我想<hr />在工作类型之间放置一个来分隔它们。我尝试了以下方法,但我认为我的语法有问题:

<!-- ko foreach: jobs -->
  <div class="job" data-bind="text: name"></div>
  <!-- ko if: ($index() > 0 && $parent[$index()].type != $parent[$index() - 1].type) -->
    <hr />
  <!-- /ko -->
<!-- /ko -->

没有<!-- ko if -->它,一切都很好,我得到了一个很好的清单。
有了这个if,我打印了前 2 个作业名称,然后是hr(错误的,因为我有 6 个第一种类型的作业),然后是这个错误:

未捕获的错误:无法解析绑定。
消息:TypeError:无法读取未定义的属性“类型”;
绑定值:如果: ($index() > 0 && $parent[$index()].type != $parent[$index() - 1].type)

根据记录,有 18 个工作,属于 3 种不同类型。
我究竟做错了什么?

4

1 回答 1

3

$parent此上下文中是包含属性的对象jobs。所以你必须索引到$parent.jobs.

<!-- ko if: ($index() > 0 && $data.type != $parent.jobs[$index() - 1].type) -->
    <hr />
<!-- /ko -->
于 2012-11-01T00:55:25.187 回答