は、いずれかが持っているか、forループと同様の挙動を可能にするためにノックアウトバインディングを知っていますか?私はforeachを私がしたいことをすることができますが、私がそうする必要がなければそれはいいでしょう。
編集2
私は、ユーザーが行う選択に基づいてテーブルの行を作成しようとしています。場合によってはx行が必要です。ここで、xは配列の長さ、xはn個の配列を表示するのに必要な最大行数を表します。
例:image1は、サイズが異なる4つの異なる配列に基づいて構築されます。 image2は同じ配列から構築され、この場合は倍増します。
<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>
上記正常に動作し、私が欲しいものを作成しますが、私はちょうどそれのループをn回行うために、空の配列に番号からselectedTab.runnersをオンにする必要が好きではありません行を作成します。私は提案のために開いています。 注:この質問を投稿した時点で、私はこのコードをかなり改訂しました。私の最初の質問に関連するのは1つだけです。
なぜあなたは$インデックスでのforeachを使用しないために星を出力します
を? –
私は配列ではなく数字でforeachすることができます。 – Zholen
これはKnockoutの目的ではありません。私はJavaScriptで定義された 'x '回何かを繰り返す必要がある現実世界の例を考えようとしています。ビューが最初に生成されたときに単純にサーバー側で行うことはできません。私は迷っている。おそらく、あなたが本当にやろうとしていることを実際に教えてくれたら、誰かがあなたに良い方法を示すことができます。 –