0

$resource は私のものではないと判断した後、自分のデータを操作するための独自のファクトリを書きたいと思いました。この最初のコードを半分書き終えたので、このコードまたは別の安らかなオブジェクトを再利用する最善の方法を見つけようとしています。URL とキーを定義し、サービスを使用する個々のファクトリを作成するサービスで、以下のコードをラップする必要がありますか? それとも、工場の中に工場を入れますか? 私の最終結果は、「オブジェクト」と「キー」を定義する工場を作成できるようにしたいということだと思います。

app.factory('AssignmentData', function($http, apiUrl){
    var object = 'assignments'
    var key = 'assignmentid';
    var url = apiUrl + object + '/';
    var actions = {
        query : function(params){
            return $http({
                method: 'GET',
                url: url,
                params: params
            }).then(function(response){return response.data},
                    function(error){return error})
        },
        get : function(params){
            return $http({
                        method: 'GET',
                        url: url + params[key],
                        params: _.omit(params, key)
                    }).then(function(response){return response.data},
                            function(error){return error})          
        },
        save : function(object){
            return true;
        },
        delete : function(object){
            return true;
        }       
    }

    return actions;
});
4

1 に答える 1

1

私の質問が正しくなかったと思います。おそらくangularjsとは何の関係もなく、javascriptの書き方を知らなかっただけです。最終的に、次のように工場を書き、目標を達成しました(または、少なくとも達成したと思います)

schedApp.factory('RestData', function($http, apiUrl){

    var resource = function(object){

        var url = apiUrl + object +'s';
        var key = object + 'id';
        var id = 'id';

        var actions = {
            query : function(params){
                return $http({
                    method: 'GET',
                    url: url,
                    params: params
                }).then(function(response){return response.data},
                        function(error){return error})
            },
            get : function(params){
                return $http({
                            method: 'GET',
                            url: url + '/' params[key],
                            params: _.omit(params, key)
                        }).then(function(response){return response.data},
                                function(error){return error})          
            },
            save : function(object){
                return true;
            },
            delete : function(object){
                return true;
            }       
        }

        return actions;

    }

    return resource;
});
于 2013-10-18T05:12:22.950 に答える