我有一個使用HTML定義的模板這樣一個ListView建:WinJS.UI.ListView - 刷新項目時,使用模板使用JavaScript
<div id="mediumListIconTextTemplate" data-win-control="WinJS.Binding.Template">
<div>
<!-- Displays the "picture" field. -->
<img data-win-bind="alt: title; src: picture" />
<div>
<!-- Displays the "title" field. -->
<h4 data-win-bind="innerText: title"></h4>
<!-- Displays the "text" field. -->
<h6 data-win-bind="innerText: description"></h6>
</div>
</div>
</div>
<div id="basicListView" data-win-control="WinJS.UI.ListView"
data-win-options="{itemDataSource : DataExample.itemList.dataSource, itemTemplate: select('#mediumListIconTextTemplate')}">
</div>
當我的列表項改變,我的項目模板將被更新以反映變化。但是,出於需要,我不得不改用使用javaScript函數來構建我的模板。我仿照樣本網站上找到的代碼之後我的代碼:
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
// TODO: This application has been newly launched. Initialize
// your application here.
} else {
// TODO: This application has been reactivated from suspension.
// Restore application state here.
}
args.setPromise(WinJS.UI.processAll().then(function() {
var lView = document.getElementById("templateFunctionListView").winControl;
lView.itemTemplate = itemTemplateFunction;
}));
}
};
function itemTemplateFunction(itemPromise) {
return itemPromise.then(function (item) {
var div = document.createElement("div");
var img = document.createElement("img");
img.src = item.data.picture;
img.alt = item.data.title;
div.appendChild(img);
var childDiv = document.createElement("div");
var title = document.createElement("h4");
title.innerText = item.data.title;
childDiv.appendChild(title);
var desc = document.createElement("h6");
desc.innerText = item.data.text;
childDiv.appendChild(desc);
div.appendChild(childDiv);
return div;
});
};
改變的javascript功能後,我的顯示項目永遠不會改變,當我綁定數據的變化。
我需要做什麼才能讓它們更新?
你可以發佈你用來更新數據的代碼嗎?另外,您是否設置了一個斷點來驗證在更改基礎數據時是否調用了模板代碼? – devhammer 2013-03-14 01:37:08
更改數據後不會調用我的模板代碼。這就是我需要的......我怎麼才能讓它被調用? – bugfixr 2013-03-14 16:39:01