2014-05-01 35 views
0

我有一個包含兩個屬性的對象列表,我希望我的中繼器顯示它們中的每一個。第一個屬性應該在<h2>標記內,第二個屬性應該在<h3>標記中。WinJS直放站只綁定第一個屬性

HTML:

<div class="dataColumns" data-win-control="WinJS.UI.Repeater"> 
    <h2 data-win-bind="textContent: Title"></h2> 
    <h3 data-win-bind="textContent: SomeOtherProperty"></h3> 
</div> 

JS:

var columnData = new WinJS.Binding.List([ 
     { Title: 'First Title', SomeOtherProperty: 'First SomeOtherProperty' }, 
     { Title: '2nd Title', SomeOtherProperty: '2nd SomeOtherProperty' }]); 

document.querySelector('.dataColumns').winControl.data = columnData; 

下面是實際的輸出,如出現在DOM資源管理器:

<div class="dataColumns win-repeater win-disposable" data-win-control="WinJS.UI.Repeater"> 
    <h2 class="win-disposable">First Title</h2> 
    <h2 class="win-disposable">2nd Title</h2> 
</div> 

爲什麼只對顯示的<h2>每一個項目?

這是我本來期望:

<div class="dataColumns win-repeater win-disposable" data-win-control="WinJS.UI.Repeater"> 
    <h2 class="win-disposable">First Title</h2> 
    <h3 class="win-disposable">First SomeOtherProperty</h3> 
    <h2 class="win-disposable">2nd Title</h2> 
    <h3 class="win-disposable">2nd SomeOtherProperty</h3> 
</div> 

回答

2

一個Repeater模板只能有一個嫡系元素(如在下面的情況下,一個孩子div

<div class="dataColumns" data-win-control="WinJS.UI.Repeater"   > 
    <div> 
     <h2 data-win-bind="textContent: Title"></h2> 
     <h3 data-win-bind="textContent: SomeOtherProperty"></h3> 
    </div> 
</div> 

結果:

Results

你也可以考慮使用的Repeater內容的WinJS.Binding.Template

​​
+0

注意,HTML Repeater控件樣品(http://code.msdn.microsoft.com/windowsapps/HTML-Repeater-control- da22d278)顯示了一些嵌套的綁定方案,在這裏可能會有所幫助。 –