ExtJS 链式存储过滤器不过滤

ExtJS chained store filter not filtering

组合框的过滤器不起作用,我不确定为什么。我有两个组合框,一个是 province,另一个是 city。当我 select 一个省份时,城市组合框将根据 selected 省份使用 province_id.

进行过滤

查看模型代码:

data: {
selectedProvince: null
},

stores: {
  province: {
    fields: [ 'province_id', 'province_name' ],
    proxy: {
      type: 'ajax',
      url: '*some url to province*',
      reader: {
        type: 'json',
        rootProperty: 'data'
      }
    }
  },

  city: {
    fields: [ 'city_id', 'city_name', 'province_id' ],
        proxy: {
      type: 'ajax',
      url: '*some url to city*',
      reader: {
        type: 'json',
        rootProperty: 'data',
      }
    },

  },

  filteredStore: {
    type: 'chained',
    source: '{city}',
    remoteFilter: false,
    filters: [{
      property: 'province_id',
      value: '{selectedProvince}'
    }],

  }
}

省组合框代码:

xtype: 'combobox',
label: 'Province',
valueField: 'province_id',
displayField: 'province_name',
bind: {
  store: '{province}',
  value: '{selectedProvince}'
}

城市组合框代码:

xtype: 'combobox',
label: 'City',
valueField: 'city_id',
displayField: 'city_name',
bind: {
  store: '{filteredStore}'
}

我试过这些:

https://fiddle.sencha.com/#fiddle/983&view/editor

https://fiddle.sencha.com/#view/editor&fiddle/2dt0

我也试过将过滤器放在组合框内,如下所示:

xtype: 'combobox',
label: 'City',
valueField: 'city_id',
displayField: 'city_name',
bind: {
   store: '{filteredStore}',
   filters: {
      property: 'province_id',
      value: '{selectedProvince}'
    }
 }

而且,结果仍然没有被过滤。如果有帮助,我正在使用 extjs 7。谢谢

这是 的副本:

答案还在这Fiddle

我更新了它以匹配您在此线程中的问题。

您必须将两个商店都设置为 autoLoad: true,将组合框设置为 queryMode: 'local'