2010-08-04 67 views
1

在Ajax請求的框架中,我試圖使用參數「baseParams」的嵌套對象。基本上,我想製作一個URL,如「ajax.php?foo [controller] = demo & foo [action] = index」。extjs:請求中的嵌套baseParams

波紋管是錯誤地產生的代碼:「ajax.php?foo = [object] & foo = [object]」。

 
Ext.data.JsonStore(
    baseParams: { 
     foo: { 
      controller: 'demo', 
      action: 'index' 
     } 
    }, 
    proxy: new Ext.data.HttpProxy({ 
     method: 'GET', 
     url: '/ajax.php' 
    }), 
    (...) 
); 

當然,我可以寫一些類似波紋管的東西,但我正在尋找一個更漂亮的解決方案。

 

Ext.data.JsonStore(
    proxy: new Ext.data.HttpProxy({ 
     method: 'GET', 
     url: '/ajax.php?foo[controller]=demo&foo[action]=index' 
    }), 
    (...) 
); 

經過幾次嘗試,我不知道這是否真的有可能。但也許我錯過了一些東西。你能幫我嗎?

回答

3

或使用這樣的事情(這是比一個長的URL字符串越好):

baseParams: { 
    'foo[controller]': 'demo', 
    'foo[action]': 'index' 
} 
+0

謝謝很多!它的工作原理和我想知道爲什麼我沒有想過這個......它看起來很明顯。 – Fabien 2010-08-06 06:58:34

0

baseParams: { foo['controller']: 'demo', foo['action']: 'index' }
我會推薦這個,我覺得這是從上面

+0

這不起作用。 – 2010-08-05 09:35:12

+0

我得到一個JavaScript語法分析錯誤。看起來引用必須是'foo [controller]'才能工作。 – Fabien 2010-08-06 07:01:03

1

我的逗號簡單的區別做了這樣的事情,這與伊戈爾帕弗萊克的迴應相同,只是多一點編程:

var foo = { 
    'controller' : 'demo', 
    'action' : 'index' 
}; 

var gfObj = new Ext.ux.grid.GridFilters({paramPrefix: 'foo'}); 

var bp = gfObj.buildQuery(foo); 

Ext.data.JsonStore({ 
    baseParams : bp, 
    (...) 
});