我的代码有一个错误,但我不知道出了什么问题。 当点击NestedList的叶子项时,我尝试在Store中设置新的url。 这是我的商店:
Ext.define('Application.store.DetailStore', {
extend: 'Ext.data.Store',
config: {
model: 'Application.model.DetailModel',
autoLoad :true,
sorters: 'title',
grouper : function(record) {
return record.get('title')[0];
},
proxy: {
type: 'ajax',
url : '/data/data1.php',
reader: {
type: 'json',
rootProperty:'recipes'}
}
}
});
这是我在NestedList中的leafitemtap监听器:
onLeafItemTap: function(nestedList, list, index, node, record, e) {
filter = record.get('text');
var detailCard = nestedList.getDetailCard();
Ext.getStore('Application.store.DetailStore').getProxy().setUrl('/data/data2.php');
Ext.getStore('Application.store.DetailStore').load()
}
在此之后我无法点击叶子项目并且细节卡没有显示。 有谁知道什么可能是错的?
答案 0 :(得分:0)
下面我使用getMain方法在点击叶子项并加载商店时将detailCard推到列表顶部。我还假设你使用getMain作为参考来定义控制器中的leafitemtap逻辑。
您也可以使用storeId而不是“Application.store.DetailStore”
Ext.getStore('Application.store.DetailStore').setProxy({
type: 'ajax',
url: '/data/data2.php'
}).load({
callback: function(records, operations, success) {
if (success = true) {
this.getMain().push({
xtype: 'detailsCard',
data: record.getData()
})
} else {
Ext.Msg.alert('Error', 'Something went wrong!', Ext.emptyFn);
}
},
scope: this
});