我有一个使用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