Javascript 应用/触发器未传递正确的参数

Javascript 应用/触发器未传递正确的参数,javascript,jquery,events,publish-subscribe,Javascript,Jquery,Events,Publish Subscribe,我的jQuery代码遇到了一个奇怪的问题。我有一个设置: 运行一个非常基本的酒吧/酒吧。我的问题如下: 单击事件触发CarrierModel.updateModel方法,该方法调用$.getJSON。返回的数据是一个数组[99],然后对其进行发布编辑。调用CarrierView.renderModel时,数据是数组[99]的第一个元素,即数组[5]。我做错了什么?如何将整套数据传递给视图?这个问题可能会让您感兴趣。似乎jQuery的触发器不允许传递数组。知道为什么吗?快速的谷歌搜索没有发现任何东

我的jQuery代码遇到了一个奇怪的问题。我有一个设置:

运行一个非常基本的酒吧/酒吧。我的问题如下:


单击事件触发
CarrierModel.updateModel
方法,该方法调用
$.getJSON
。返回的
数据
是一个
数组[99]
,然后对其进行
发布
编辑。调用
CarrierView.renderModel
时,
数据
数组[99]
的第一个元素,即
数组[5]
。我做错了什么?如何将整套
数据
传递给视图?

这个问题可能会让您感兴趣。似乎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);