【问题标题】:linked comboboxes with one store in Extjs 4.0在 Extjs 4.0 中与一个商店链接的组合框
【发布时间】:2012-01-16 17:40:42
【问题描述】:

我有 2 个组合框。第一个选择一个类别,第二个选择子类别。这两个类别都存储在一个存储中,其中包含以下字段:id、parentId、label。过滤商店不起作用,因为两个组合框都绑定到同一个商店。

如何链接组合框?如何过滤第二个组合框的列表?

【问题讨论】:

  • 您商店的数据是内联的还是从服务器加载的?

标签: javascript extjs combobox extjs4 store


【解决方案1】:

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

编辑: 这是这种野兽的一个例子:) http://extjs.wima.co.uk/example/1 这不是我的,但听起来正是你在做什么。请注意为每个组合框设置商店的方式。第一个 Combo 使用新运营商创建新商店 - 尽管这不是最佳实践,但它会起作用。最佳实践就是使用 Ext.create(..)。

第二个 Combo 指的是现有商店。在您的情况下,因为您要重用相同的商店定义,所以您想在两个 Combos 上使用 Ext.create(...) 。

更多关于类系统最佳实践的参考请阅读本指南:http://docs.sencha.com/ext-js/4-0/#!/guide/class_system

【讨论】:

  • 如何在 mvc 模型中创建一个新的 store 并将其直接分配给组合框?
  • 这个例子不起作用,但它正在朝着正确的方向发展。它仍在使用两个不同的商店(国家和城市)。我使用 Ext.define 在 app/store/categories 中的 mvc 应用程序结构中配置我的商店:"Ext.define('app.store.categories', {extend: 'Ext.data.Store',..."。在我的第一个组合框中,我只说 store: categories。就是这样,完成并且可以工作。但是对于第二个组合框,我需要复制这个商店。我尝试了几件事,但我不知道如何获得一个新的实例app.store.categories?
  • 你看我的回答了吗?使用 Ext.create() 来“创建”一个新的商店实例。如果您只是通过商店名称引用它,它将返回对共享实例的引用。
  • 如何创建现有定义模型的副本?我现在对此很愚蠢。
【解决方案2】:

朋友.....在商店试试 filter

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 2021-06-10
    • 2013-02-04
    • 2013-07-26
    • 2011-11-18
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多