If I have a service that looks like this:
app.factory('User', function($http, User) {
var User = function(data) {
angular.extend(this, data);
};
User.prototype.create = function() {
var user = this;
return $http.post(api, user.getProperties()).success(function(response) {
user.uid = response.data.uid;
}).error(function(response) {
});
};
User.get = function(id) {
return $http.get(url).success(function(response) {
return new User(response.data);
});
};
return User;
});
How do I, in a controller, get the User
that was created in the get()
function?
Currently what I have is:
app.controller('UserCtrl', function($scope, User) {
$scope.user = null;
User.get($routeParams.rid).success(function(u) {
$scope.user = new User(u.data);
});
});
The issue is that the UserCtrl
is getting the api response, not the value returned from the success()
in the factory. I'd prefer to be making the new user in the factory, as opposed to passing the api response to the controller.