angularjs 用服务获取json数据,在控制器调用,打印为undefined。页面不显示值。
这是controller 代码:
'use strict';
app.controller('WrapCtrl',['$scope','myService',function($scope,myService,){
myService.getData().then(function(data){
console.log(data.wel_title)
},function(error){
$scope.error=error
})
}]);
这是service代码:
'use strict';
app.service("myService",['$http','$q',function myService($http,$q){
return{
getData:function(){
var d=$q.defer()
return $http.get("json/welcome.json")
Promise.then(function(data){
//在这里可以对返回的数据集做一定的处理,再交由controller进行处理
data.status=true;
d.resolve(data);
},
function(error){
error.status=false;
d.reject(error)
})
return d.promise;
}
}
}]);
json文件:
{"wel_title":"欢迎来到Angular世界"}
报错信息
求老司机指点一二。
关于你的代码,划红线的地方已经
return
了,下面的代码不会执行,而$http
返回的Promise
里面包含的是response
,不直接是data,所以你的打印是undefined,你可以改成response.data.wel_title.