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:未定義のプロパティ'type'を読み取ることができません。
バインディング値:if:($ index()> 0 && $ parent [$ index()]。type!= $ parent [$ index()-1] .type)

記録のために、3つの異なるタイプの18の仕事があります。
私は何が間違っているのですか?

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 に答える