0

jQuery コードで奇妙な問題が発生しました。私は次のように設定しています

(function($) {
    var o = $({});

    $.subscribe = function() { o.on.apply(o, arguments); };
    $.publish = function() { o.trigger.apply(o, arguments); };
}(jQuery));

(function($) {

    var CarrierView = {
        subscriptions: function() {
            $.subscribe( 'reporting.carrier.model.changed', this.renderModel );
        },
        renderModel: function( e, data ) {
            var self = CarrierView;
        }
    };

    var CarrierModel = {
        subscriptions: function() {
            $.subscribe( 'reporting.carrier.model.update', this.updateModel );
        },
        updateModel: function( value ) {
            $.getJSON('carriers', function( data ) {
                $.publish( 'reporting.carrier.model.changed', data );
            });
        }
    };

    window.CarrierView = CarrierView.init();
    window.CarrierModel = CarrierModel.init();
})(jQuery);

非常に基本的な pub/sub を実行しています。私の問題は次のとおりです。

CarrierModel.updateModelクリック イベントによってメソッドがトリガーされ、 が呼び出されます$.getJSONdata返されるのは であり、Array[99]これがpublished になります。がCarrierView.renderModel呼び出されると、dataの最初の要素である がArray[99]ありArray[5]ます。私は間違って何をしていますか? dataのセット全体をビューに渡すにはどうすればよいですか?

4

0 に答える 0