2011-07-25 17 views
2

是否有內,在下面的代碼的請求的「數據」選項的方式來評估一個變量:的請求之前,應評估數據變量

var v_postfield=valueA; 
new Request({ 
var self = this; 
    emulation:false, 
    url: self.ajaxurl, 
    headers: { 'X-CSRF-Token':rails.csrf.token }, 
    data: {'task': { v_postfield: self.field.get('value')}}, 
    evalResponse: true, 
    evalScripts: true 
}).put(); 

我不斷收到:

參數:{ 「任務」=> { 「v_postfield」=> 「DDD」}, 「ID」=> 「4e21c97023525c19730000d3」}

當我只是想:

參數:{ 「任務」=> { 「值a」=> 「DDD」}, 「ID」=> 「4e21c97023525c19730000d3」}

服務器上rubyonrails運行,但我對此表示懷疑相關的。

回答

1

沒錯。如果我正確理解你的問題,你需要傳遞動態值作爲對象成員。

這是JavaScript和語法糖,允許您通過對象訪問對象的屬性。註釋:

var obj = { 
    prop: value 
}; 

obj.prop === value; 

當你想要一個動態屬性,你需要(在陣列等),使用底層括號符號來代替:

var obj = {}, prop = "foo"; 
obj[prop] = value; 

obj == { foo: value }; 

僅此而已。

這樣:

var taskobj = {}; 
taskobj[v_postfield] = self.field.get('value'); 
// ... 
data: { 
    task: taskobj 
} 
+0

十分感謝,(以防萬一有人問,我還添加了周圍任務的報價爲'「任務」:taskobj') –