有没有办法访问$ resource的承诺,因为它将我的数据扭曲成一个对象“m”,我无法访问那个m所以我无法得到我的数据属性是否有任何解决方案?
[m, $promise: d, $resolved: true]
m包含我的所有数据但我无法访问我的任何数据属性以便按照我的方式工作。
这是我的资源:
function getBank(id){
return $resource('http://localhost:3000/bank/:id').query({id : id}).$promise.then(function(user){
console.log(user);
});
}
现在console.log给我这个:[m, $promise: d, $resolved: true]
无论如何都要对我的数据进行扭曲来访问'm'?
答案 0 :(得分:0)
好吧我会使用$ http,因为它不会扭曲给出的回复哪个安排我的情况谢谢大家这里是我如何改变我的服务:
angular.module('myApp.profile').factory('Bank',Bank);
Bank。$ inject = ['$ resource','$ http']; 功能银行($ resource,$ http){
var service = {};
service.getBank = getBank;
return service;
/*function getBank(id){
return $resource('http://localhost:3000/bank/:id').query({id : id}).$promise.then(function(user){
console.log(user);
});
}*/
function getBank(id, callback){
var response ;
return $http.get('http://localhost:3000/bank/'+id).then(function(bank){
response = {success : true, bank : bank};
callback(response);
},function(error){
response = {success : false, message : "Error retreiving Bank data"};
callback(response);
});
}
}
控制器呼叫:
Bank.getBank($rootScope.loggedUser._id,function(response){
if(response.success){
$scope.bank = response.bank;
console.log(response.bank.data[0]._id);
}else{
console.log(response.message);
}
});
这应该是技巧:)
答案 1 :(得分:-1)
你不需要使用$ promise。
好像你不懂如何使用ngResource ..
首先尝试写工厂:
HomeKeyLocker homeKeyLocker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
homeKeyLocker = new HomeKeyLocker();
homeKeyLocker.lock(this);
}
然后在控制器中:
(function(){
'use strict';
angular.module('app')
.factory('User', User);
User.$inject = ["$resource"];
function User($resource){
return {
getBank: $resource('http://localhost:3000/bank/:id', {id: '@id'}),
}
};
})();