10

元の質問

forループに似た動作を可能にするノックアウトのバインディングを持っている、または知っている人はいますか? foreach を自分のやりたいようにすることはできますが、そのようにする必要がなければいいと思います。

編集 2

ユーザーの選択に基づいてテーブル行を作成しようとしています。x が配列の長さである x 行が必要な場合もあれば、n 個の配列を表示するために必要な最大行数を x が表す場合もあります。

例: image1 は、サイズが異なる 4 つの異なる配列に基づいて構築されます。image2 は同じ配列から構築され、この場合は 2 倍になります。

ここに画像の説明を入力 ここに画像の説明を入力

<div data-bind="if: selectedTab()">
<table>
<thead>
  <tr>
    <td>
      <div class="a-i-post-All"></div>
    </td>
    <!-- ko foreach:$root.selectedTab().races-->
    <td>
      <input type="checkbox" />
    </td>
    <!-- /ko -->
  </tr>
</thead>
<tbody data-bind="foreach: selectedTab().runners"> // <-- This is an empty array created by the max number of Runners in the selectedTabs array of Races
  <tr>
    <td>
      <div class="a-i-post"></div>
    </td>
    <!-- ko foreach:$root.selectedTab().races-->
    <td>
      <!-- ko if: Runners.length > $parentContext.$index()-->
      <input type="checkbox" />
      <!-- /ko -->
    </td>
    <!-- /ko -->
  </tr>
</tbody>

上記は正常に機能し、必要なものを作成しますが、selectedTab.runners を数値から空の配列に変換して、行を作成するために n 回ループさせる必要はありません。私は提案を受け付けています。注:この質問を最初に投稿した時点で、このコードを大幅に修正し、最初の質問に関連する発生は 1 つだけになりました。

4

3 に答える 3

6

Array オブジェクトを作成できます。

  <!-- ko foreach: new Array(the_length_you_need) -->
       <span>&#9733;</span>
  <!-- /ko -->

これにより、星がthe_length_you_need回出力されます

于 2016-04-21T17:16:01.057 に答える
4

次のようなことができます。

<div data-bind="foreach: [0,0,0,0,0]">
    <span data-bind="text: $index"></span>
</div>

そして、要素0〜4を取得します。

しかし、クリスがコメントで言ったように、これは奇妙に思えます。あなたが何をしようとしているのかを教えてください。正しい方向に向けます。

于 2013-04-18T20:17:38.960 に答える