Backbone.js 和 Saiku 中的触发事件

Trigger event in Backbone.js and Saiku

我是 backbone 的新手。我一直在寻找它已在 Saiku 中使用。我遇到了下面的行。

Saiku.session.trigger('workspace:new', { workspace: this });

'workspace:new'是一个事件吗? backbone 触发器如何将其识别为事件?

简短回答:是的,workspace:new 是一个事件。

Backbone 有几个您可以监听的内置事件。但您也可以像这段代码那样触发自定义事件。该事件仅由一个字符串标识(在本例中为 "workspace:new")。当您在继承自 Backbone's Event Module 的对象上调用 trigger 时,该事件 "happens." 作为 trigger 的第二个参数,您可以传递有关该事件的一些数据,任何您想要的可从事件处理函数访问。

然后,通常在其他地方,会有代码等待该事件发生。这是通过调用 .on.listenTo 方法设置的。

这是一个基本示例:(查看实际效果 on JSBin

var model = new Backbone.Model();

model.on('my-event', function (data) {
    console.log("my-event happened!");
    console.log(data);
});


model.trigger('my-event');
model.trigger('my-event', 'some-data');
model.trigger('my-event', { anything: 'works' });