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' });
我是 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' });