私は Angular を使い始めたばかりで、ベース サービス クラスを用意するのが良い考えかどうか疑問に思っています。
var app = angular.module('UserList', ['ngResource']);
app.service('BaseService', function() {
return {
resource: '',
setResource: function(res) {
resource = res;
return this;
},
all: function() {
return resource.query();
},
find: function(id) {
return resource.get({id: id});
},
save: function(user) {
return resource.save(user)
}
}
});
app.service('UserService', ['$resource', 'BaseService', function($resource, $base) {
var resource = $resource('/users/:id', {id: '@id'});
return $base.setResource(resource);
}]);
app.controller('UserCtrl', ['$scope', 'UserService', function($scope, User) {
$scope.users = User.all();
$scope.addUser = function() {
$scope.users.push({
first_name: $scope.user.first_name
})
User.save($scope.user);
};
}]);
私の考えでは、たとえば、新しいエンドポイントを持つ「PostService」を追加するのは非常に簡単です。
app.service('PostService', ['$resource', 'BaseService', function($resource, $base) {
var resource = $resource('/posts/:id', {id: '@id'});
return $base.setResource(resource);
}]);
このアプローチに関するコメント、または Angular に関するヒントや推奨事項 (戦略、命名規則など) があれば、ぜひお寄せください。
よろしく、クリス