2013-05-06 44 views
1

我在ListView的ItemTemplate中使用控件MicrosoftNSJS.Advertising.AdControl。 我想將一些數據綁定到以下data-win-options屬性:ApplicationId和AdUnitId我可以將數據綁定到data-win-options嗎?

源數據已正確設置並且在我的項目模板中可見,我可以用h2 +經典數據顯示它們在innerText屬性-WIN綁定

廣告,如果我直接就把靜態標識在HTML代碼,但這些ID需要從配置文件加載正確顯示...

這可能嗎?謝謝

如果這是不可能的,我可以直接修改JS代碼中的項目模板之前被注入列表視圖?

回答

1

我終於發現沒有真正的約束力執行這一辦法,通過使用itemTemplateSelector功能是這樣的:

function itemTemplateSelector(itemPromise) 
{ 
    return itemPromise.then(function (item) 
    { 
    if (item.type == "ad") 
    { 
     var template = _$(".adTemplate").winControl.render(item, null); 

     // Access to the AdControl through the DOM 
     var adControl = template._value.childNodes[1].childNodes[1].winControl; 

     // Set options that are specified in the item 
     WinJS.UI.setOptions(adControl, { applicationId: item.AdAppId, adUnitId: item.AdUnitId }); 

     return template; 
    } 
    else 
    { 
     return _$(".itemTemplate").winControl.render(item, null); 
    } 
    } 
} 
3

來發現這是可能的(我試圖做類似的東西)

控件屬性的語法必須以winControl爲前綴。

實例(我在這裏設置應用程序ID,但結合了HTML元素的類名和廣告控制的adUnitId設置)

<div id="adItemTemplate" data-win-control="WinJS.Binding.Template"> 
    <div data-win-bind="className:css; winControl.adUnitId: adUnitId" 
     data-win-control="MicrosoftNSJS.Advertising.AdControl" 
     data-win-options="{ applicationId: 'd25517cb-12d4-4699-8bdc-52040c712cab'}"> 
    </div> 
</div> 
+0

您能否展示一個如何在實際的data-win-options屬性上工作的例子。謝謝! – deepelement 2015-01-09 19:00:31

1

我曾在收視率的問題:我將它綁定

<div data-win-control="WinJS.UI.Rating" data-win-options="{averageRating: 3.4, onchange: basics.changeRating}"></div> 

通過winControl:

<div data-win-control="WinJS.UI.Rating" data-win-bind="winControl.averageRating: myrating" data-win-options="{onchange: basics.changeRating}"></div> 

它工作正常。

0
<div data-win-bind="this['data-list_item_index']:id WinJS.Binding.setAttribute" > 
相關問題