Триггерное событие в 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' });
Другие вопросы по тегам