我正在尝试根据来自 json 响应的第一个组合填充第二个组合,例如使用第一个组合中的类别值在第二个组合中显示子类别值。我所有的值都来自 json 数组响应,我正在尝试动态设置 root 属性并在第一个组合更改函数中加载控制器中第二个组合框的存储,但它没有填充数据。谁能告诉我问题是什么。我如何解决它?我在下面发布了第一个组合的更改功能的代码:
valueChange:function(combo, ewVal, oldVal,optionsVal) {
for(var i=0;i<tempstore.getCount();i++){
var record = tempstore.getAt(i);
//checking for user selection id with store id
if(record.get('categoryId')==ewVal)
{
value="category.category1.category["+i+"].subCategory.subCategory1";
tempsecondCompostore.getProxy().getReader().setRootProperty(value);
tempsecondCompostore.load();
cmbSecond.setStore(tempsecondCompostore);
mdSecond.setDisplayField('subCategoryName');
cmdSecond.setValueField('subCategoryId');
break;
}
}
这是我的第二个组合模型:
Ext.define('Test.model.SubCategoryModel', {
extend : 'Ext.data.Model',
fields : [
{
name:'subCategoryName',
type:'string'
},
{
name:'subCategoryId',
type:'string'
}
]
});
这是我的第二个组合商店:
Ext.define('Test.store.SubCategoryStore', {
extend : 'Ext.data.Store',
storeId : 'secondcombo',
model : 'Test.model.SubCategoryModel',
//autoLoad : 'true',
proxy : {
type : 'ajax',
url : 'data.json',
reader : {
type : 'json',
rootProperty:'category.category1.category[0].subCategory.subCategory1
}
}
});
在视图中显示组合:
xtype: 'fieldset',
width:400,
heigth:200,
items: [
{
xtype: 'selectfield',
label: 'Select',
store : 'secondcombo',
width:400,
heigth:200,
queryMode: 'local',
displayField :'subCategoryName',
valueField :'subCategoryId',
id:'cmbSecond'
}
]
谢谢