gpt4 book ai didi

javascript - AngularJS 工厂、服务和 HTTP 使用

转载 作者:行者123 更新时间:2023-12-02 16:29:03 25 4
gpt4 key购买 nike

我是学习 Angular 的新手,无法理解一些基础知识。

我的 Controller 线路如下所示:

   $scope.test =  fileLoader.loadFile();

我的工厂服务如下所示:

angular.module('myWellnessTrackerApp')
.factory('fileLoader', function($http) {

return{
loadfile : function(fileLoc){
$http.get('data/sideEffects.json').success(function(data) {
// you can do some processing here
return data;
});
}
};

});

这会引发错误。但是当我的 Controller 线是

   $scope.test =  fileLoader.data;

我的服务是

angular.module('myWellnessTrackerApp')
.factory('fileLoader', function($http) {

var obj = {content:null};


$http.get('data/sideEffects.json').success(function(data) {
// you can do some processing here
obj.content = data;
});

return obj;
});

我不明白,我希望能够了解如何在 HTTP 服务包装器中创建服务,以请求页面或本地文件并将其返回。

谢谢

最佳答案

你不能这样做

$scope.test =  fileLoader.loadFile();

loadFile 是一个异步调用,您无法从中返回!您可以使用 .then 来继续 promise 模式。您的工厂将更改为:

loadFile : function(fileLoc){
return $http.get('data/sideEffects.json').then(function(result) {
// you can do some processing here
return result.data;
});
}

还有你的 Controller :

fileLoader.loadFile().then(function(data) {
$scope.test = data;
});

关于javascript - AngularJS 工厂、服务和 HTTP 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com