API · Observable

riot.observable(el)

Agrega soporte Observer al objeto el dado o, si el argumento está en blanco, crea y devuelve una nueva instancia de Observable. Después de esto el objeto es capaz de emitir y escuchar eventos. Por ejemplo:

function Car() {

  // Hace observable las instancias de Car
  riot.observable(this)

  // escucha al evento 'start'
  this.on('start', function() {
    // motor iniciado
  })

}

// crea una nueva instancia de Car
var car = new Car()

// genera el evento 'start'
car.trigger('start')

Devuelve el objeto el dado o una nueva instancia de Observable

el.on(events, callback)

Escucha los eventos dados por events (una lista separada por espacios) y ejecuta la función callback cada vez que un evento es generado.

// escucha un solo evento
el.on('start', function() {

})

// escucha múltiples eventos, el tipo del evento es pasado como parámetro al callback
el.on('start stop', function(type) {

  // type es 'start' o 'stop'

})

Devuelve: el

el.one(event, callback)

Escucha al evento event dado y ejecuta la función callback una sola vez.

// ejecuta la función una vez, aun si 'start' es emitido múltiples veces
el.one('start', function() {

})

Devuelve: el

el.off(events)

Remueve los eventos dados por la lista separada por espacios.

el.off('start stop')

Devuelve: el

el.off(events, fn)

Remueve la función de retorno dada de la lista de eventos.

function doIt() {
  console.log('starting or ending')
}

el.on('start middle end', doIt)

// remueve un escucha específico de los eventos "start" y "end"
el.off('start end', doIt)

Devuelve: el

el.off(‘*’)

Remueve todas las escuchas de todos los tipos de eventos.

Devuelve: el

el.trigger(event)

Ejecuta todas las funciones de retorno que escuchan al evento event dado.

el.trigger('start')

Devuelve: el

el.trigger(event, arg1 … argN)

Ejecuta todas las funciones de retorno que escuchan al evento event dado. Se puede proveer cualquier número de parámetros adicionales a los escucha.

// escucha al evento 'start' y espera parámetros adicionales
el.on('start', function(engine_details, is_rainy_day) {

})

// genera un evento "start" con parámetros adicionales
el.trigger('start', { fuel: 89 }, true)

Devuelve: el