如何在WinJS listview数据源没有项目时显示消息?

时间:2013-12-20 14:43:55

标签: javascript winjs

如果数据源没有项目,有没有办法处理ListView(WinJS)?即财产或显示信息的方法

2 个答案:

答案 0 :(得分:0)

我发现最简单的方法就是让spandiv包含您只在列表视图中包含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 });
}