2016-04-11 4 views
0

Есть ли способ получить доступ к обещанию $ 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] который деформирует мои данные есть в любом случае для доступа, что «М»?

+0

неясно, что вы просите .. добавьте больше объяснений + код .. –

+0

Я обновил свой вопрос, надеюсь, теперь стало яснее – hassine

ответ

-1

Вам не нужно использовать обещание $.

Кажется, вы не `понять, как использовать ngResource ..

Попробуйте во-первых, писал завод:

(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'}), 
    } 
}; 
})(); 

, а затем в контроллере:

(function(){ 
    'use strict'; 

angular.module('app').controller('BankController', BankController); 

BankController.$inject = ["$scope", "User"]; 
function BankController($scope, User){ 
    User.getBank.get({id:1}, function(item){ 
    console.log(item); 
    },function(err){ 
     $scope.error=true; 
    }); 
    } 
} 
})(); 
+0

** Кажется, вы не понимаете, как использовать ngResource ** (он использует его в соответствии ct way) .. '$ prom' требуется, чтобы иметь цепочку обещаний ... так, как вы используете функции обратного вызова. –

+0

Я знаю, как использовать ngResource. Моя проблема в том, как ngResource возвращает обещание – hassine

0

хорошо я буду использовать $ http, так как доза не деформирует обещанное обещание, которое организует мое дело. Благодарю вас всех, вот как я поменял мой сервис:

angular.module('myApp.profile').factory('Bank',Bank); 

Банк. $ Injection = ['$ resource', '$ http']; функция банка ($ ресурс, $ 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); 
    } 
}); 

и он должен трюк :)

Смежные вопросы