Я пытаюсь создать функцию для запроса информации о идентификаторе страны в нашей базе данных через ajax
, так как данные представлены в запросе таблицы address
. То есть в таблице address
указывается id
страны, а не название страны, а фактическое название страны находится в другой таблице, которую я запрашиваю.Coffeescript не перебирает весь объект
После отправки запроса ajax
я создаю строку адреса, которую я получаю. Однако он обновляет только последнее значение объекта, а не все из них. Вот мой CoffeeScript:
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?
EDIT: Похоже, что это что-то делать с ajax
запросов или раздвигая ajax
запросы к requests
массива. Я добавил пару console.log()
в начале функции, прежде чем я нажал ajax
вызов, и он произвел следующую информацию:
Correspondence_Country__c
a063000000CZoZHAA1
Country_of_Residence__c
a063000000CZoZHAA1
[Петля выражение] (http://coffeescript.org/#loops) в CoffeeScript, так что вы могли бы сказать 'запросов = для ключа, Вэла из ...' вместо 'requests.push' внутри петля. –
Спасибо за это, я раньше смотрел, как отложить функцию до тех пор, пока все мои запросы ajax не закончатся, и я использовал пример переполнения стека, который я нашел. Я не знал, что смогу это сделать. – josh