是否可以获取已触发的事件名称,以便我可以在我的方法中将其用作字符串?

时间:2016-01-20 10:44:06

标签: javascript backbone.js

我想知道我是否运行Backbone.Events.trigger('show:something', this.model);我是否可以将该事件名称传递给我在我订阅的监听器中映射到的方法this.listenTo(Backbone.Events, 'show:something', this.toggle, this);

toggle: function(param) { // can I get show:something? }

2 个答案:

答案 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绑定。回到我身边,我会更新答案。