我在使用createFiltered()创建的WinJS.Binding.List上使用实时过滤投影。
过滤谓词对一个字符串变量进行操作,该变量由监听Windows.ApplicationModel.Search.SearchPane.getForCurrentView()。onquerysubmitted的事件处理程序设置。
当搜索字符串发生变化时,如何触发重新评估过滤后的投影?
答案 0 :(得分:5)
您需要更改谓词过滤器用于检查项目的变量,然后在源列表中调用notifyReload()
。这是一个用于演示的小代码片段:
var mainList = new WinJS.Binding.List(["one", "two", "three"]);
var filterString = "t";
function filter(item) {
var result = item.indexOf(filterString) > -1;
console.log("Filter: " + item + " " + result);
return result;
};
var filteredList = mainList.createFiltered(filter);
filterString = "e";
mainList.notifyReload();
调用notifyReload
时,将重新应用谓词以重新生成已过滤列表的内容。在此片段中,对console.log
的调用将让您了解如何重新应用过滤器。