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