2011-09-10 5 views
1

arrayを持つviewmodelをテーブルにバインドする際に問題があります。 私はテーブル用のテンプレートと行用のテンプレートを持っています。 テーブルは作成されていますが、行はありませんか? アイデア?knockoutjsテーブルとのバインドの問題

コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1-vsdoc.js" ></script> 
<script src="../../Scripts/knockout-1.3.0beta.js" type="text/javascript"></script>  
<script src="../../Scripts/knockout.mapping-latest.debug.js" type="text/javascript"></script>  
<script src="../../Scripts/jQuery.tmpl.min.js" type="text/javascript"></script>  
</head> 
<body> 

<script type="text/javascript"> 
    $(function() { 
     var model = { 
      Name: "john", 
      LastName: "doe", 
      Rows: [{ Amount: 1, Name: "rik", Description: "desc1" }, { Amount: 2, Name: "rik2", Description: "desc2"}] 
     } 
     var viewModel= ko.mapping.fromJS(model); 

     ko.applyBindings(viewModel); 
    }); 

</script> 

<script type="text/x-jquery-tmpl" id="bankTemplate"> 
<table> 
    <tbody data-bind="template: 'bankRowTemplate', foreach: Rows"> 
    </tbody> 
</table>   
</script> 

<script type="text/x-jquery-tmpl" id="bankRowTemplate"> 
     <tr> 
      <td>${Amount}</td> 
      <td>${Name}</td> 
      <td>${Description}</td> 
     </tr> 
</script> 

<input id="first" data-bind="value: Name" /> 
<input id="first2" data-bind="value: Name" /> 

<div data-bind="template: 'bankTemplate'"></div> 


</body> 
</html> 

答えて

2

あなた<tbody ...>、少し助けと

<tbody data-bind="template: {name:'bankRowTemplate', foreach: Rows}"> 

代わり

+0

感謝を定義します。行は2行のデータにバインドされますが、データバインドされた値(Rik)ではなく実際のhtmlに$ {Name}などしかありません – Medo

+0

ここでは動作例があります:[jsFiddle](http://jsfiddle.net/majorbyte/z5XZk /) –

関連する問題