2014-05-22 28 views
0
Ext.define('apikeygen.store.Clients', { 

extend: 'Ext.data.Store', 

alias: 'store.Clients', 

requires: ['CCC.model.Client', 
      'CCC.util.ActorContext'], 

storeId: 'ClientsStore', 

model: 'CCC.model.Client', 

proxy: { 
    type: 'ajax', 
    url: '/services/clients', 

    reader: { 
     type: 'json', 
     root: 'clients.client' 
    } 
    extraParams : { 
     token : dynamica value ----------------> How to set this value dynamically 
    } 


} 

});如何在ExtJs存儲中動態設置參數值?

我在Extjs有一個像上面這樣的商店。如何動態設置令牌值?

我有「令牌」值方面,我可以訪問這樣的值:ActorContext.getToken();

如何分配這ActorContext.getToken();以「令牌」在ExtJS的商店PARAM。

回答

0

難道你不能只分配值?

var store = Ext.create('apikeygen.store.Clients'); 
store.proxy.extraParams.token = ActorContext.getToken(); 
store.load(); 
+0

由於ActorContext在用戶登錄後將具有值。但是當我們在「Application.js」中定義商店時,我認爲它只在應用程序加載時嘗試初始化商店。所以,我得到錯誤「UncaughtTypeerror:無法讀取屬性'getToken'的未定義 – ida

+0

我剛剛意識到...已經稍微更新了我的答案 – blorkfish

+0

這就是我現在正在做的事情..是它的正確方法嗎? – ida

1

首先,賣場應與autoLoad:false進行配置,因爲你不希望它在應用程序初始化階段的早期加載,但只有在該令牌可用。

然後,當你準備裝載存儲(令牌可用)電話:

store.getProxy().setExtraParam('token', ActorContext.getToken()); 
store.load(); 
0

控制器中添加此,或視圖內initComponent

var store = Ext.create('apikeygen.store.Clients',{ 
    storeId: 'storeClients', 
}); 
store.proxy.extraParams = { token: 'your data value'}; 

,並加載你的店是這樣:

store.load()