好的,所以我想出为什么我陷入了一个循环。我只是不知道如何解决它。
我正在构建一个从第三方服务器上抓取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时,它会被更改,所以它会再次获取它,依此类推。等等。
如何说服代码获取一次并对它感到满意?
答案 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;
}]);
工厂提供商
为我们提供函数的返回值,即您只需创建一个对象,向其添加属性,然后返回相同的对象。当您将此服务传递到控制器时,该对象上的这些属性现在将可用于那个控制器通过你的工厂。