2015年7月19日日曜日

Angular resouce で saveメソッドを作成

REST Resouces

app.factory('Resources', [ '$resource', function ($resource) {
    return function (url, params, methods) {
        var defaults = {
            show: { method: 'GET', isArray: false },
            index: { method: 'GET', isArray: true},
            update: { method: 'PUT', isArray: false},
            create: { method: 'POST'},
            destroy: { method: 'DELETE'}
        };
        methods = angular.extend(defaults, methods);
        var resource = $resource(url, params, methods);
        resource.prototype.$save = function () {
            if (!this.id) {
                return this.$create();
            }
            else {
                return this.$update();
            }
        };
        return resource;
    };
}]);

 

REST Resouce

railsでのresouce
//RailsのResouce対応
app.factory('Resource', [ '$resource', function ($resource) {
    return function (url, params, methods) {
        var defaults = {
            show: { method: 'GET', isArray: false},
            create: { method: 'POST',isArray: false},
            update: { method: 'PUT',isArray: false},
            destroy: { method: 'DELETE',isArray: false}
        };
        methods = angular.extend(defaults, methods);
        var resource = $resource(url, params, methods);
        resource.prototype.$save = function () {
            if (!this.id) {
                return this.$create();
            }
            else {
                return this.$update();
            }
        };
        return resource;
    };
}]);

使用例

app.factory("Book",['Resources',function (Resources) {
    return Resources( "/books/:id.json", {id: '@id'},{});
}]);

0 件のコメント:

コメントを投稿