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