我和app.factory一起陷入无限循环 - AngularJS

时间:2016-07-12 04:15:55

标签: angularjs infinite-loop

好的,所以我想出为什么我陷入了一个循环。我只是不知道如何解决它。

我正在构建一个从第三方服务器上抓取JSON文件的小应用程序。该文件包含用户的信息。为了这个练习(我有一个想法为什么他们这样做,但它杀了我)我给了一个JSON文件的链接。我终于发现每次点击时我给出的链接都会提供不同的用户信息!

所以,我有以下内容:

app.factory('users', ['$http', function($http) { 
   return $http.get('link to file - can't give out actual link for proprietary reasons') 
}]);

但是当它验证.apply()上的JSON时,它会被更改,所以它会再次获取它,依此类推。等等。

如何说服代码获取一次并对它感到满意?

1 个答案:

答案 0 :(得分:0)

创建一个可以从指令/控制器调用并返回它的函数。

app.factory('users', ['$http', function($http) {
   function callExternalJson() {
       return $http.get('link to file - can't give out actual link for proprietary reasons') 
   }

   return callExternalJson;
}]);

工厂提供商

为我们提供函数的返回值,即您只需创建一个对象,向其添加属性,然后返回相同的对象。当您将此服务传递到控制器时,该对象上的这些属性现在将可用于那个控制器通过你的工厂。