Javascript Extjs 4.0中带有一个存储的链接组合框

Javascript Extjs 4.0中带有一个存储的链接组合框,javascript,extjs,combobox,extjs4,store,Javascript,Extjs,Combobox,Extjs4,Store,我有两个组合框。第一个选择类别,第二个选择子类别。这两个类别都存储在一个存储中,并带有以下字段:id、parentId、label。筛选存储不起作用,因为两个组合框都绑定到同一个存储 如何链接组合框?如何筛选第二个组合框的列表?使用Ext.create()为第二个组合框创建同一存储的新实例,而不是引用同一存储。使用组合框上的选择或更改侦听器触发从一个到另一个的筛选 编辑: 下面是这样一个野兽的例子:) 这不是我的,但听起来正是你在做的。请注意每个组合框的存储设置方式。第一个组合使用新的操作员创建

我有两个组合框。第一个选择类别,第二个选择子类别。这两个类别都存储在一个存储中,并带有以下字段:id、parentId、label。筛选存储不起作用,因为两个组合框都绑定到同一个存储


如何链接组合框?如何筛选第二个组合框的列表?

使用Ext.create()为第二个组合框创建同一存储的新实例,而不是引用同一存储。使用组合框上的选择或更改侦听器触发从一个到另一个的筛选

编辑: 下面是这样一个野兽的例子:) 这不是我的,但听起来正是你在做的。请注意每个组合框的存储设置方式。第一个组合使用新的操作员创建一个新的商店-虽然这不是最佳实践,但它会起作用。最佳实践就是使用Ext.create(..)

第二个组合引用现有的存储。在您的情况下,因为您正在重用相同的存储定义,所以希望在两个组合上都使用Ext.create(…)


有关类系统最佳实践的更多参考,请阅读本指南:

friend…..尝试在应用商店中进行过滤。

应用商店的数据是内联的还是从服务器加载的?如何在mvc模型中创建新的应用商店并将其直接分配给组合框?该示例不起作用,但它正朝着正确的方向发展。它仍在使用两个不同的商店(countrie和city)。我使用Ext.define:“Ext.define('app.store.categories',{extend:'Ext.data.store',…”在app/store/categories中的mvc应用程序结构中配置我的商店。在我的第一个组合框中,我只说store:categories。就这样,完成并工作。但是,对于第二个组合框,我需要复制此存储。我尝试了几件事,但我不确定如何获得app.store.categories的新实例?你读了我的答案吗?使用Ext.create()来“创建”一个新的存储实例。如果您只是按存储名称引用它,它将返回对共享实例的引用。我如何才能创建现有定义模型的副本?我现在对此感到非常愚蠢。