流程是这样的:当前台发送Get请求/xxx时,node向前台返回一个json报文{data:'success'}
我在前台的controller中发送请求,将获得到的报文,也就是result绑定到scope中的phone上,
phonecatControllers.controller('PhoneListCtrl', ['$scope', 'Phone', function ($scope, Phone) {
var result = Phone.query();
console.log(result.data);//undefined
$scope.phone = result;
}]); 问题是,我在controller中打印result.data的时候,打印出来的是
undefined,直接打印result的时候打印出来的是
Object { $promise: Object, $resolved: false }
而在html里用{{phone.data}}显示的时候,显示就是success,请问这是为什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是不是请求异步了。 先执行了console.log(result.data)。 而这个时候还没有给result赋值。 可以看看promise之类的。 我一般是这么写的 service:
service.query = function(id,data){
var deferred = $q.defer();
var scope = this;
$http.post(BASE_URL+'/query/'+id,data)
.success(function(msg) {
//todo
deferred.resolve(msg);
})
.error(function() {
deferred.reject();
});
return deferred.promise;
}
controller:
service.query(1,$scope.searchData).then(function(msg){
$scope.data = msg.data;
//todo
},function(err){
console.log(err);
});
######result.$promise.then(function (o) { console.log("data:-->" + o.data); }); 你说的是对的,是ajax请求,这样就取到了!