イベントの単純なメディエーター パターンを実装しようとしていますが、メディエーターに登録すると、イベント コールバックが呼び出されます。
メディエーターは次のとおりです。
define(function(require){
'use strict';
var _ = require('underscore');
var Backbone = require('backbone');
return _.extend( Backbone.Events);
});
バッキング モデルやテンプレートを使用せずに単純なビューを作成しました
define(function (require) {
'use strict';
var Backbone = require('backbone');
var mediator = require('mediator');
var Sandbox = Backbone.View.extend({
el: '.sandbox',
initialize: function () {
this.render();
this.bindEvents();
},
bindEvents:function(){
mediator.on("sandbox:change", this.changeText(), this );
},
render: function () {
$(this.el).html("SANDBOX VIEW IS WORKING");
},
changeText: function () {
$(this.el).html("THE TEXT HAS CHANGED");
}
});
return Sandbox;
});
ビューが読み込まれると、sandbox:change
イベントが発生し、何も呼び出されていないにもかかわらず、changeText 関数が呼び出されます。mediator.trigger('sandbox:change')
単にメディエータ オブジェクトにバインドされているときに、コールバックが呼び出されるのはなぜですか?