我想知道我是否运行Backbone.Events.trigger('show:something', this.model);
我是否可以将该事件名称传递给我在我订阅的监听器中映射到的方法this.listenTo(Backbone.Events, 'show:something', this.toggle, this);
toggle: function(param) {
// can I get show:something?
}
答案 0 :(得分:0)
简短回答否。
但是你可以听取所有' event,事件的名称将作为第一个参数传递给函数。
this.on('all', function(ev, ...) {
console.log(ev); // the name of the event - show:something in your above example
});
答案 1 :(得分:0)
不,你不能作为唯一的事件触发器就像joe fitter描述的来源http://backbonejs.org/docs/backbone.html
但是其他选项是绑定要调用的函数而不是使用raw函数。例如,如果使用下划线,请使用this而不是this.toggle
_.bind(this.toggle, this, 'theEventNameYouWant');
并让第一个参数切换为
toggle: function(eventName, param) {
来源http://underscorejs.org/#bind
我不知道如果你需要第二个用于listenTo绑定。回到我身边,我会更新答案。