API · Наблюдатель
riot.observable(el)
Добавляет функционал наблюдателя для данного объекта el
или, если аргумент пуст, создаёт и возвращает новый экземпляр наблюдателя. После этого объект может вызвать и слушать событий. Например:
function Car() {
// создаём объект наблюдателя Car
riot.observable(this)
// слушаем событие 'start'
this.on('start', function() {
// ...
})
}
// новый объект Car
var car = new Car()
// вызываем событие 'start'
car.trigger('start')
@returns полученный объект el
или новый объект наблюдателя
el.on(events, callback)
Подписка на слушание списка событий events
, которые передаются в виде строки, разделённых запятой. Функция callback
вызывается каждый раз, когда какое-либо из событий срабатывает.
// слушание одного события
el.on('start', function() {
})
// прослушивание нескольких событий. тип события передаётся в виде аргумента `type`
el.on('start stop', function(type) {
// type равен 'start' или 'stop'
})
// прослушивание всех событий
el.on('all', function(event, param1, param2) {
// event - имя того метода, который вызывается
})
@returns el
el.one(event, callback)
Подписка на список событий event
, разделённых пробелом. callback
срабатывает только один раз.
// функция выполняется только один раз, даже, если событие `start` вызывается множество раз
el.one('start', function() {
})
@returns el
el.off(events)
Удаление всех слушателей, которые подписаны на данное событие
el.off('start stop')
@returns el
el.off(events, fn)
Удаляет определённый метод из тех, которые подписаны на данные события.
function doIt() {
console.log('starting or ending')
}
el.on('start middle end', doIt)
// удаление определённого метода из событий start и end
el.off('start end', doIt)
@returns el
el.off(‘*’)
Удаление всех слушателей
@returns el
el.trigger(events)
Выполнить все функции callback, которые слушают данный список событий events
, разделённых пробелом.
el.trigger('render update')
@returns el
el.trigger(event, arg1 … argN)
Выполнить все callback-функции, которые слушают данный event
. Любое количество дополнительных параметров могут быть предоставлены для слушателей.
// подписка на событие 'start'. слушатель может принимать дополнительные параметры
el.on('start', function(engine_details, is_rainy_day) {
})
// вызов события start c параметрами
el.trigger('start', { fuel: 89 }, true)
@returns el