我是学习角色的新手,也很难理解一些基础知识。
我的控制器线如下所示:
$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;
});
}
};
});
这会引发错误。但是当我的控制器线
时 $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服务包装器中提供服务,以请求页面或本地文件并将其返回。
由于
答案 0 :(得分:2)
你不能做到
$scope.test = fileLoader.loadFile();
loadFile
是异步通话,您无法从中返回!您可以使用.then
继续承诺模式。您的工厂将更改为:
loadFile : function(fileLoc){
return $http.get('data/sideEffects.json').then(function(result) {
// you can do some processing here
return result.data;
});
}
你的控制器:
fileLoader.loadFile().then(function(data) {
$scope.test = data;
});