多次调用Service的方法可以保存单个数据实例

时间:2013-12-25 11:07:14

标签: angularjs angularjs-service

我正在为AngularJS项目使用服务,并尝试使用for循环调用service.method,如下所示:

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();
})

问题是当我在fetchXML()方法中尝试resource时;永久设置,意味着如果循环运行五次,则只创建一个fetchXML()实例,并且console.log(resource)在所有五次迭代中返回相同的内容。

请告诉我这里我做错了什么。

1 个答案:

答案 0 :(得分:0)

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

应该将参数传递给函数,因为它被用作resource来创建prop

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

这应该很容易排除故障。首先,它将在浏览器控制台/开发工具中检查的请求URL中显而易见。

在函数中使用一些简单的deguggerconsole.log()语句也会有所帮助。或者在函数上设置断点并单步执行它以查看变量值