2012-08-24 18 views
10

MVC 4とknockout.jsを使用して、サーバーから取得した多数のファイルを表示するために使用している表から抜粋していますライブラリバージョン2.1.0。knockout.js foreachは、テーブルのtd要素を繰り返しますが、tr要素は返しません。

<tr data-bind="foreach: files, visible: (files() && files().length > 0)"> 
     <td data-bind="text: UploadPath" /> 
     <td data-bind="text: FileName" /> 
    </tr> 

データは正しく検索されていますが、foreachはTRではなくテーブル内のTD要素を繰り返しています。したがって、100ファイルがある場合、ユーザーに表示されるテーブルに200の列があります。 TR要素をforeachファイルとして繰り返すにはどうすればよいですか?

<table data-bind="foreach: files, ..."> 
    <tr> 
     ... 

ます。また、仮想要素を利用することができます:

答えて

23

単純に次の(外側)要素に結合 "のforeachを" 置く

<!-- ko foreach: files --> 
<tr> 
    <td> 
     ... 
</tr> 
<!-- /ko --> 
+0

私はそのように傾いていましたが、ファイルデータを表示するだけではなく、別のテーブルを次に見たいかどうかわかりませんでした。迅速な対応をありがとう。 –

1

を私は奇妙なことに出くわした:

私はコンテナレスのバインディングを使用して複数のテーブル行を繰​​り返そうとしていました。 KOはクローズ/ koタグが見つからないと訴えました。

私は、コンテナレスバインディングの上に定義されたテーブルヘッダーを持っていました。これを標準の表の行に変更した場合は、すべてが期待どおりに機能していました(ヘッダーには必要なスタイリングがありませんが、それを上書きします)。

これは他の誰かがこれで苦労するのを助けてくれることを願っています。これは修正ではなく回避策です。

+0

この同じことにはまって、解決策はこちら:http://stackoverflow.com/a/8116017/423231 –

+0

ありがとう。私はそれをかなり徹底的に研究したいと思ったが、明らかにそうではなかった!今はすべて意味があります。 – mhall

関連する問題