Триггерное событие в Backbone.js и Saiku
Я новичок в позвоночнике. Я искал это было использовано в Сайку. Я наткнулся на нижнюю строку.
Saiku.session.trigger('workspace:new', { workspace: this });
Является ли "рабочее пространство: новое" событием? Как триггер магистрали распознает его как событие?
1 ответ
Краткий ответ: да, workspace:new
это событие.
В Backbone есть несколько встроенных событий, которые вы можете прослушивать. Но вы также можете запускать пользовательские события, как этот код делает. Событие идентифицируется только строкой (в данном случае "workspace:new"
). Когда вы звоните trigger
на объекте, который наследуется от модуля событий Backbone, это событие "происходит". В качестве второго параметра trigger
, вы можете передать некоторые данные о событии, все, что вы хотите, доступны из функции обработчика события.
Затем, обычно где-то в другом месте, будет код, ожидающий этого события. Это устанавливается путем вызова .on
или же .listenTo
методы.
Вот базовый пример: (Смотрите это в действии на 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' });