我有一个 json 文件。我想使用 $http.get 从该文件获取数据并将其存储在变量中,以便稍后在 Controller 中使用它。像这样的事情:
$http.get('items.json').success(function(response){
var data = response; //data can't be used outside this function
})
我想在函数外部使用data
。
最佳答案
您可以通过以下方式完成:
var data;
$http.get('items.json').success(function(response){
data = response; //data can't be used outside this function
})
现在 Controller 的所有方法都可以访问这里的数据。
但我的建议是制作一个 Angular 服务并将 $http 代码放入其中。然后注入(inject)这个服务 在您的 Controller 中并使用它。
下面是代码:
服务代码:
app.service('MyService', function($http) {
this.getData = function(successHandler, failureHandler) {
$http.get('items.json').then(function(response){
successHandler(response); //data can't be used outside this function
}, function(response) {
failureHandler(response);
})
}
});
Controller 代码:
app.controller('MyCntrl', function($scope, MyService) {
var data;
function successHandler(res) {
data = res;
}
function failureHandler(res) {
data = res;
}
$scope.getData = function() {
MyService.getData(successHandler, failureHandler);
}
});
上述解决方案将帮助您区分与服务和 Controller 相关的问题,并使您的应用程序 更加模块化和可维护。
关于javascript - Angularjs - 如何存储从 $http.get 收到的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339581/