我試圖創建一個函數,通過ajax
來請求關於我們數據庫中的國家/地區ID的信息,因爲這是我查詢的address
表中數據的表示方式。也就是說,在address
表中,代表該國的id
,而不是國家名稱,實際的國家名稱位於我查詢的另一個表中。Coffeescript不遍歷整個對象
當我發送ajax
請求後,我創建了一個我得到的地址字符串。但是,它只更新對象的最後一個值,而不是全部。這裏是我的咖啡腳本:
requests = Array()
for key, val of {'Correspondence_Country__c':data['Correspondence_Country__c'], 'Country_of_Residence__c': data['Country_of_Residence__c']}
console.log(key)
console.log(val)
requests.push($.ajax
url: window.location.pathname
type: 'post'
dataType: 'json'
data: 'search_id=' + val + '&search_column=Id&sobject=Country__c&columns=["Name"]'
error: (jqXHR, textStatus, errorThrown) ->
alert('Error: ' + textStatus + ': ' + errorThrown)
success: (c_data, textStatus, jqXHR) ->
data[key] = c_data['Name']
console.log(c_data['Name'])
console.log(key)
)
defer = $.when.apply($, requests)
我省略了defer.done
函數。的信息的console.log的結果如下:
China P.R.
Country_of_Residence__c
China P.R.
Country_of_Residence__c
,而不是被預期的
China P.R.
Correspondence_Country__c
China P.R.
Country_of_Residence__c
是否有與我的CoffeeScript的問題嗎?
編輯:它看起來像它的東西做的ajax
請求或推ajax
請求到requests
陣列。我加了一對夫婦console.log()
在函數的開始,我推ajax
呼叫之前,它產生了以下信息:
Correspondence_Country__c
a063000000CZoZHAA1
Country_of_Residence__c
a063000000CZoZHAA1
[循環是表達式],而不是使用'requests.push'內(http://coffeescript.org/#loops)中的CoffeeScript所以你可以說'請求=關鍵的VAL ...'循環。 –
感謝你的提問,我之前正在研究如何延遲一個函數,直到完成所有的ajax請求,並且我使用了我找到的Stack Overflow示例。我不知道我能做到這一點。 – josh