下面的代码在我搜索header属性(例如Fruits,Electronics)时起作用,但它不适用于children属性。
来自dojo网站(http://dojotoolkit.org/reference-guide/1.10/dojox/mobile/FilteredListMixin.html),它说了以下内容。
"过滤适用于由商店(dojo / store或dojo / data)支持的列表,以及不由商店支持的列表。过滤由包含分层数据(作为父数据项的子项的数据项)的商店支持的列表时,商店必须支持递归搜索查询,以便过滤可以匹配子项。"
"商店的网站含义必须支持递归搜索查询" ,dojo / store / Memory支持"递归搜索查询" ?
我在这里错过了一些过滤工作的孩子吗?
非常感谢任何帮助。
require([
"dojo/ready",
"dojo/_base/declare",
"dojox/mobile/EdgeToEdgeStoreList",
"dojox/mobile/FilteredListMixin",
"dojo/store/Memory",
"dojox/mobile/parser",
"dojox/mobile",
"dojox/mobile/compat"
], function (ready, declare, EdgeToEdgeStoreList, FilteredListMixin, Memory)
{
ready(function ()
{
var alldata = [
{field:"Fruits", label:"Fruits", header: true, children:[{field:"Apple", label:"Apple"}, {field:"Orange", label:"Orange"}]},
{field:"Electronics", label:"Electronics", header: true, children:[{field:"Hair Dryer", label:"Hair Dryer"}, {field:"Oven", label:"Oven"}]}
];
var param = {};
param.labelProperty = "label";
param.idProperty = "field";
param.constraint = false;
param.query = {};
param.stateful = true;
param.store = new Memory({idProperty:"field", data: alldata});
param.placeHolder = "Search";
var ph = new declare([EdgeToEdgeStoreList, FilteredListMixin])(param);
ph.placeAt("somediv");
ph.startup();
});
}