2011-12-07 6 views
0

私は尊敬にテンプレートエンジンをたいことを、いくつかの事前定義されたli要素、とULの中にテンプレートアイテムをレンダリングするとき、私は問題を持っている:foreachでknockoutjsでテンプレートを使用すると、元のレイアウトを維持できますか?

これは私が達成しようとしているものです:

<ul data-bind="{template: {name: itemTemplate, foreach: itemsToRender}}"> 
    <li class="first">some pre-info</li> 
    //this is where I'd like knockout to render my templates 
    <li class="last">som-post info</li> 
</ul> 

これは私が実際に得るものです:

<ul data-bind="{template: {name: itemTemplate, foreach: itemsToRender}}"> 
    //this is where all my templateItems get rendered 
    <li class="first">some pre-info</li> 
    <li class="last">som-post info</li> 
</ul> 

明白な選択肢が全体ulをレンダリングされたテンプレートを使用することで、子項目に掛け、これはレンダリングされます変更があるたびにテンプレート全体が更新され、更新されたアイテム(li)だけでなく、preferred wayです。

答えて

1

KO 1.3で使用可能なコンテナレス制御フローバインディング(RC)を使用することをお勧めします。

<ul> 
    <li class="first">some pre-info</li> 
    <!-- ko foreach: itemsToRender --> 
    <li class="item" data-bind="text: name"></li> 
    <!-- /ko --> 
    <li class="last">some post-info</li> 
</ul> 

または

<ul> 
    <li class="first">some pre-info</li> 
    <!-- ko template: { name: 'itemTemplate', foreach: itemsToRender } --> 
    <!-- /ko --> 
    <li class="last">some post-info</li> 
</ul> 

<script id="itemTemplate" type="text/html"> 
    <li class="item" data-bind="text: name"></li> 
</script> 

サンプル:それは次のようになり

http://jsfiddle.net/rniemeyer/tzJU3/

+0

didntのは、1.3が現在RCにあったことを実現します。確かにそれを見なければならないでしょう。私は現在KO 1.2.1を使用しているとは特定していないので、私は答えを受け入れるでしょう...また、1.2.1のようなものは本当に解決できません。ありがとう:) – pavsaund

関連する問題