3
下面從控制器更改存儲API是我MyStore.js
:在ExtJS的
Ext.define('MyApp.store.MyStore', {
extend: 'Ext.data.Store',
model: 'MyApp.model.Note',
autoLoad: true,
proxy: {
type: 'ajax',
api: {
/* I want to change the following two filepaths */
read: 'data/notesMar2013.json',
update: 'data/notesMar2013.json'
},
reader: {
type: 'json',
root: 'data',
successProperty: 'success'
}
}
});
我想如下通過控制器改變的MyStore的api
的read
和update
值:
var notesStore = Ext.getStore('MyStore');
notesStore.on('load',function(notesStore){
var proxy = notesStore.getProxy();
Ext.apply(proxy.api,{
/* Changing the file paths here */
read: 'data/notesApr2013.json',
update: 'data/notesApr2013.json'
})
notesStore.load();
},this,{single:false});
//
console.log(notesStore);
通過使用上述功能,我試圖更新MyStore,但沒有發生。當我檢查鉻控制檯的值成功改變,但不更新或覆蓋商店,即使我使用notesStore.load()
。可能是什麼問題呢?
我提到以下鏈接
答:該代碼是工作的罰款。讓我解釋一下我的問題:我在商店裏展示了一個容器中的內容,最初,容器中充滿了一些內容,並且高度是固定的。如果我甚至將任何內容添加到容器中,那麼隨着容器具有固定高度,它將變得隱藏。到目前爲止,內容是追加到默認內容,而不是刪除默認內容,然後添加。這是實際的問題。
感謝您的回覆。是的,我的代碼正在更改變量,但未更新舊商店(它顯示的值與您在小提琴中顯示的值相同,但無法更新或覆蓋舊商店)。無論如何,我會按照你的建議看待其他問題。 – 2013-03-28 07:30:26
@Mr_Green請注意,我從代理創建了一個實例重寫'getUrl:function(request)'方法來獲取代理將用於此請求的url。但是您也可以在失敗的請求中看到該商店使用了正確的api,即使在更改之後 – sra 2013-03-28 07:36:23
我剛剛將您的代碼複製到了我的項目中。仍然沒有更新或覆蓋。看起來我一如既往在做一些愚蠢的錯誤。 – 2013-03-28 07:52:34