【发布时间】:2015-04-25 22:38:58
【问题描述】:
如果我有这样的服务:
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;
});
如何在控制器中获取在get() 函数中创建的User?
目前我拥有的是:
app.controller('UserCtrl', function($scope, User) {
$scope.user = null;
User.get($routeParams.rid).success(function(u) {
$scope.user = new User(u.data);
});
});
问题是 UserCtrl 正在获取 api 响应,而不是工厂中 success() 返回的值。我更愿意在工厂中创建新用户,而不是将 api 响应传递给控制器。
【问题讨论】:
标签: javascript angularjs api service factory