2

呼び出す必要がある関数barがあります。コールバックを使用するのは初めてです。コールバックはまだajaxのスコープ内にあるため、bar. ajaxの成功でバーを呼び出すことは可能ですか? barは module で定義されていますtop

define(["top"], function() {
    function foo(callback) {
        $.ajax({
            type: "GET",
            cache: false,
            dataType: 'json',
            url: "http://asdf/qwer",
            success: function(response) {
                callback(response);
            }
        });
    }
    foo(function(response) {
        bar(response);      
    });
});
4

1 に答える 1

2

top.jsあなたの外見がこれに似ていると仮定します:

define( function() {
  return {
    'bar': function( data ){
             // some code here
           }
  };
} );

(ここで関数をエクスポート/返す必要があることに注意してください!)

bar()次のように関数にアクセスできます。

define(["top"], function( top ) {
    function foo(callback) {
        $.ajax({
            type: "GET",
            cache: false,
            dataType: 'json',
            url: "http://asdf/qwer",
            success: function(response) {
                callback(response);
            }
        });
    }
    foo(function(response) {
        top.bar(response);      
    });
});

関数内の依存関係の操作については、require.js のドキュメントをdefine()参照してください。

define()必要なモジュールごとに、内部の関数にパラメーターを追加する必要があります。この例では、これがtopパラメーターです。その後、このパラメーターを使用して、要件モジュールのエクスポートされたすべてのプロパティを呼び出すことができます。

于 2012-07-04T10:22:23.817 に答える