0
在我的主要模块中,我想创建一个服务来分析一个json文件并将内容推送到一个数组,然后我想让服务返回数组所以任何控制器都可以轻松访问。这个问题是在函数运行前的$ HTTP请求完成,因此始终返回一个空数组
dashModule.factory('dataFetch', function($http) {
var emailArray = [];
$http.get('../data/emails.json').success(function log(obj) {
for (var i = 0; i < obj.length; i++) {
emailArray[i] = obj[i];
}
});
return {
test: function() {
return emailArray;
}
};
});
你应该尝试使用.error注销错误(数据,状态,头文件...)。乍一看,这应该工作。所以我认为你得到json数据的方式有问题,或者json数据不可用。 – courtyen
如果我console.log(OBJ)在我的循环它显示正确的JSON数据,console.log(emailArray)在for循环数组显示,因为它应该。只有当它返回它绕过$ http请求 –
可能重复[如何从异步调用返回响应?](http://stackoverflow.com/questions/14220321/how-to-return-the-response -from-an-asynchronous-call) – Phil