Я определил следующий factory:
angular.module("account").factory("users",["$http",
function(a){
return {
getUser: function(){
return a.get("/user/me").then(function(r){
return r.data;
});
}
};
}
]);
И мой контроллер:
angular.module("test.controllers",["account"])
.controller("TestCtrl",["$scope","users",
function(a,u){
a.user = u.getUser();
console.log(a.user);
}]);
Здесь console.log:
d {$$state: Object, then: function, catch: function, finally: function} $$state: Object status: 1 value: Object user: Object__v: 0 _id: "54c1fg29f36e117332000005" temp: "1ce3793175e0b2548fb9918385c2de09" __proto__: Object __proto__: Object __proto__: Object __proto__: Object
Приведенный выше код возвращает объект состояния вместо объекта пользователя. Но из журнала объект состояния имеет объект пользователя в пределах значения. Как получить объект пользователя? Или я делаю это совершенно неправильно?
Я знаю, что другим способом является возвращение $http.get и вызов метода then() в контроллере. Но я часто использую объект пользователя, и если я вызываю метод then() в контроллере, он почти такой же, как с использованием $http.get в контроллере вместо factory.