我使用以下代码。我正在阅读的json文件名是“hassan.json”。如果我通过$ http在控制器中读取此文件,一切正常。但我想使用我从文件中读取的数据,一次又一次地在不同的控制器中,所以我为此做了一个服务。但服务时,当我通过$ http.get()从该json文件读取数据,并在我调用控制器和console.log(数据)时,它返回我这在控制台“e {$ $ state:object}“。
这是控制器:
app.controller('showdata', function($scope, service){
$scope.mydata = service.getData().then(function(user){
$scope.mydata = (user.data);
console.log(($scope.mydata));
});
});
这服务我使用:
app.service('service', function($http, $q){
var outData;
this.getData = function() {
if (this.outData === undefined) {
var deferred = $q.defer();
$http.get('jsons/hassan.json')
.then(function(data){
this.outData = data;
deferred.resolve(data);
},
function(err) {
deferred.reject(err);
});
return deferred.promise;
}
else {
return this.outData;
}
}
});
作为您的来电是异步,你应该CONSOLE.LOG解决后,即'$ scope.mydata = service.getData()。然后(功能(用户){$ = scope.mydata(user.data );的console.log(($ scope.mydata)); }); ' –
可以ü请修改我的代码,然后发表评论 –
修改您的原始来源。请在您的控制器中使用修改后的源代码进行测试 –