Вызов метода службы несколько раз содержит один экземпляр данных

Я использую сервисы для своего проекта AngularJS и пытаюсь вызвать service.method с помощью цикла for, например:

for( key in URLs) {
   Service.fetchXML(key); 
}

Описание услуг:

[..]

fetchXML : function(resource) {

var prop = SomeVar[resource]; //SomeVar is declared within the service

$.get('xmlURL.xml?resource='+prop, function(data) {
  //adds data to the IndexedDB after properly parsing it. 
  console.log(resource)
  dbAdd();
})

Проблема в том, что я пробую resource внутри метода fetchXML (); его постоянная установка означает, что если цикл выполняется пять раз, создается только один экземпляр fetchXML (), а console.log (ресурс) возвращает то же самое для всех пяти итераций.

Скажите, пожалуйста, что я здесь делаю не так?


person Vikas Singhal    schedule 25.12.2013    source источник
comment
пожалуйста, поделитесь сервисным кодом, пожалуйста   -  person Ajay Beniwal    schedule 25.12.2013
comment
попробуйте получить XML в массиве :)   -  person KoIIIeY    schedule 25.12.2013
comment
Разве не очевидно, что проблема не в показанном вами коде? Вы ожидали, что у людей здесь будут хрустальные шары, чтобы понять, что fetchXML() делает код и почему он вызывает проблемы? Задайте неполные вопросы, и вы получите неудовлетворительный ответ, добавьте необходимые детали, и вы будете поражены, как быстро вы получите обратную связь.   -  person charlietfl    schedule 25.12.2013
comment
@Ajaybeniwal добавил больше деталей.   -  person Vikas Singhal    schedule 28.12.2013
comment
@charlietfl добавил больше деталей.   -  person Vikas Singhal    schedule 28.12.2013


Ответы (1)


for( key in URLs) {
   Service.fetchXML(); 
}

Параметр следует передавать функции, поскольку он используется как resource для создания prop.

for( key in URLs) {
   Service.fetchXML(key); 
}

Устранение неполадок должно было быть довольно простым. Сначала это будет видно по URL-адресу запроса, который проверяется в инструментах консоли / разработчика браузера.

Также помогло бы использование некоторых простых операторов degugger или console.log() в функции. Или установите точку останова на функции и пройдитесь по ней, чтобы увидеть значения переменных.

person charlietfl    schedule 28.12.2013
comment
Спасибо за быстрый ответ. Вы правы, я должен был упомянуть, что key уже передается в функцию (это опечатка). Во-вторых, я использую console.log () для просмотра значений, а также веду журнал запросов XHR для просмотра исходящих запросов. Все указывают на одно и то же - во всех запросах XML передается одно и то же значение ключа вместо разных ключей (согласно циклу). - person Vikas Singhal; 28.12.2013
comment
ну, я тоже не вижу, откуда берутся ключи или что находится в объекте SomeVar ... не могу помочь без дополнительного кода. Попробуйте создать демонстрацию, которая воспроизводит проблему в jsfiddle.net. - person charlietfl; 28.12.2013