Приведенный ниже код работает, когда я ищу атрибут заголовка (например, Fruits, Electronics), но он не работает для атрибута children.
С сайта додзё (http://dojotoolkit.org/reference-guide/1.10/dojox/mobile/FilteredListMixin.html), сказано следующее.
"Фильтрация работает для списков, поддерживаемых магазином (dojo / store или dojo / data), а также для списков, не поддерживаемых магазином. При фильтрации списка, поддерживаемого магазином, содержащим иерархические данные (данные) элементы, которые являются дочерними элементами родительского элемента данных), хранилище должно поддерживать рекурсивные поисковые запросы, чтобы фильтрация могла соответствовать дочерним элементам. "
Что означает веб-сайт под "store должен поддерживать рекурсивные поисковые запросы" , поддерживает ли 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();
});
}