3

これは奇妙かもしれませんが、私が探しているのはjQuery.ajaxSetup()、特定のオブジェクト内のみのスコープを作成する方法です。例を挙げましょう。私は と の 2 つのオブジェクトを持っていobj_1ますobj_2。オブジェクト内のすべての ajax 呼び出しが 1 つのパラメーターのセットを使用し、2 番目のオブジェクトのすべての呼び出しが他のパラメーターのセットを使用するように、ajaxSetup を作成したいと考えています。

例えば

var obj_1 = {

    my_func : function(){

        $.ajax({
            success : function(){
                // do something
                // all ajax calls in this object should use one set of params (type,dataType,headers etc)
            }
        })

    }

};

var obj_2 = {

    my_func : function(){

        $.ajax({
            success : function(){
                // do something
                // all ajax calls in this object should use different params (type,dataType,headers etc)
            }
        })

    }

};

すべての ajax 呼び出しですべてのパラメーターを記述する必要がないように、これを行いたいと考えています。

4

1 に答える 1

3

あなたの最善の策は、オブジェクトで使用する関数を作成し、ajax 呼び出しを行うときにパラメーターを設定することです。オブジェクトは、直接呼び出すのではなく、その関数を使用しますajax。たとえば、単純なラッパー関数です。

または、standardParams再利用する各オブジェクトにプロパティを設定し、呼び出しに固有のパラメーターを混在させることもできます。何かのようなもの:

var obj_x = {
    standardParams: {
        // These are the params that don't vary
        dataType: "json" // Or whatever
    },

    your_func: function() {
        $.ajax($.extend({}, this.standardParams, {
            // These are the params that vary
            success: function() { ... }
        }));
    }
};

jQuery.extend(呼び出しごとのパラメーターと標準のパラメーターを混在させるために を使用することに注意してください。)

もちろん、この 2 つを組み合わせて使用​​することもできます (内部でstandardParamsプロパティを使用するラッパー関数)。

于 2012-10-29T08:30:22.973 に答える