1
我想为事件实现一个简单的中介模式,但是当我使用中介注册时,我的事件回调被调用。骨干事件回调被绑定时调用,而不是被触发
中保很简单:
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')
为什么回调时,它只是简单地绑定到介体对象?
因为你的代码调用'this.changeText()'并且告诉骨干绑定*调用的结果*。你想要的是mediator.on(“sandbox:change”,this.changeText,this)'(注意不存在'()')。 – DCoder
啊!我看到瞎子说...谢谢! – Mars