如果数据源没有项目,有没有办法处理ListView(WinJS)?即财产或显示信息的方法
答案 0 :(得分:0)
我发现最简单的方法就是让span
或div
包含您只在列表视图中包含0项时显示的消息。使用像KnockoutJS这样的绑定库时,这很容易实现。
示例(直接放在WinJS列表视图下方):
<h4 data-bind="visible: (resultDataSource().length === 0)">No Results Found</h4>
答案 1 :(得分:0)
易于使用内置的WinJS数据绑定
<div
data-win-control="WinJS.UI.ListView"
data-win-options="{itemDataSource: app.model.items.dataSource}"
data-win-bind="style.display: app.model.items app.displayBlockIf"
></div>
<div data-win-bind="style.display: app.model.items app.displayBlockIfNot">No items.</div>
在代码中:
isSet = function(value) {
if (!value) {
return false;
}
if (value.length === 0) {
return false;
} else {
return true;
}
};
WinJS.Namespace.define("app", {
displayBlockIf: WinJS.Binding.converter(function(value) {
if isSet(value) then "block" else "none";
}),
displayBlockIfNot: WinJS.Binding.converter(function(value) {
if !isSet(value) then "block" else "none";
}),
model: {
items: new WinJS.Binding.List()
}
});
然后在你的网页ready()
函数中的某个地方:
ready: function(element, options) {
WinJS.Binding.processAll(element, { app: app });
}