我正在尝试扩展 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'}
我只想显示由特定类别选择的那些数据,例如“水果”
在 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
},
我正在尝试在“列表”树节点中的 Demos.js 存储中添加和访问“类别”作为额外参数,如下所示:
{
text: 'List',
leaf: true,
id: 'list',
extraParams: {
category: 'fruit'
}
},
几个问题:我可以使用 extraParameter 将此属性添加到 Store 吗?如果是这样,我如何访问它以用于我的路由?我认为它可以作为我的 Demos 商店的元数据使用,但无法访问它。
除了创建多个商店(一个用于“水果”、“蔬菜”、“notAVegetable”等)之外,还有什么替代方法可以在它们上使用过滤器来实现相同的目标?
蒂亚!