我正在尝试扩展Sencha Touch Kitchensink应用中的路由,如下所示:
我的数据(在列表商店中)如下:
{ category: 'fruit', str: 'tomato'},
{ category: 'fruit', str: 'green bean'},
{ category: 'vegetable', str: 'celery'},
{ category: 'vegetable', str: 'sprouts'},
{ category: 'notAVegetable', str: 'ketchup'},
{ category: 'notAVegetable', str: 'prune'}
我只想显示特定类别选择的数据,例如“fruit”
在Main.js控制器中,我试图通过从Demos TreeStore中的“List”节点获取另一个参数来实现此目的
routes: {
'demo/:id/:category': 'showViewById',
'menu/:id': 'showMenuById'
},
showViewById操作添加额外参数以供以后使用
showViewById: function (id, category) {
var nav = this.getNav(),
view = nav.getStore().getNodeById(id);
console.log('view ' + id);
this.showView(view);
this.setCurrentDemo(view);
this.hideSheets();
// do stuff with category
},
我正在尝试在“List”树节点的Demos.js存储中添加和访问'category'作为extraParameter,如下所示:
{
text: 'List',
leaf: true,
id: 'list',
extraParams: {
category: 'fruit'
}
},
几个问题:我可以使用extraParameter将此属性添加到商店吗?如果是这样,我如何访问它以用于我的路由?我认为它可以作为我的Demos商店的元数据,但无法访问它。
除了创建多个商店(一个用于“水果”,“蔬菜”,“notAVegetable”等)以及过滤器以实现同样的事情之外,还有其他选择吗?
TIA!