假设我们有一个像这样的嵌套数据结构:
[
{
"name": "fruits",
"items": [
{ "name": "apple" ...}
{ "name": "lemon" ...}
{ "name": "peach" ...}
]
}
{
"name": "veggies",
"items": [
{ "name": "carrot" ...}
{ "name": "cabbage" ...}
]
}
{
"name": "meat",
"items": [
{ "name": "steak" ...}
{ "name": "pork" ...}
]
}
]
以上数据放在一个dojo/store/Memory中。我想对包含字母“c”的项目执行查询,但仅限于较低级别(不想查询类别)。
使用通用 dojo/store/Memory,它的查询功能仅在顶层应用过滤器,因此代码
store.query(function(item) {
return item.name.indexOf("c") != -1;
});
只会对类别名称(水果、蔬菜等)而不是实际项目执行查询。
是否有一种直接的方法可以在子节点上执行此查询,如果匹配,则返回所有子节点以及父节点?例如,“c”查询将返回“fruits”节点及其“peach”子节点,“veggies”将保持原样,“meat”将完全排除在查询结果之外。