API · Observable

riot.observable(el)

Donne la fonctionnalité d’Observateur à l’objet donné el ou si l’argument est vide, retourne une nouvelle instance observable. Une fois cela fait, l’objet est capable de déclencher ou de réagir à des événements. Par exemple:

function Car() {

  // Rend l'instance Car observable
  riot.observable(this)

  // réagit à l'événement 'start'
  this.on('start', function() {
    // moteur démarré
  })

}

// crée une nouvelle instance Car
var car = new Car()

// déclenche l'événement 'start'
car.trigger('start')

@returns - retourne l’objet el ou une nouvelle instance observable

el.on(events, callback)

Ecoute une liste d’événements events (séparés par des espaces) et appelle la fonction callback chaque fois qu’un de ces événements est déclenché.

// écoute un unique événement
el.on('start', function() {

})

// écoute plusieurs événements, le type d'événement observé est passé en argument de la fonction callback
el.on('start stop', function(type) {

  // type est soit 'start', soit 'stop'

})


// écoute tous les événements observés
el.on('*', function(event, param1, param2) {
  // event est le nom de l'événement déclenché
  // faites quelque-chose avec les paramètres passés en arguments
})

@returns - retourne el

el.one(events, callback)

Ecoute une liste d’événements events (séparés par des espaces) et appelle la fonction callback la première fois, après quoi les événements suivants sont ignorés.

// appelle la fonction une seule fois, même si 'start' est déclenché plusieurs fois
el.one('start', function() {

})

@returns - retourne el

el.off(events)

Arrête d’écouter la liste d’événements events (séparés par des espaces)

el.off('start stop')

@returns - retourne el

el.off(events, fn)

Arrête d’appeler la fonction fn lorsqu’un des événements de la liste events (séparés par des espaces) est déclenché

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

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

// supprime l'écouteur d'événements correspondant aux événements start et end et à la fonction doIt
el.off('start end', doIt)

@returns - retourne el

el.off(‘*’)

Supprime tous les écouteurs de tous les événements sur cet élément.

@returns - retourne el

el.off(‘*’, fn)

Arrête d’appeler la fonction fn pour tous les événements sur cet élément.

@returns el

el.trigger(events)

Déclenche la liste d’événements events (séparés par des espaces) sur l’élément el et appelle toutes les fonctions de callback associées

el.trigger('start')
el.trigger('render update')

@returns - retourne el

el.trigger(event, arg1 … argN)

Déclenche l’événement event sur l’élément el et appelle toutes les fonctions associées avec certains paramètres. N’importe quelle quantité de paramètres supplémentaires peut être fournie aux fonctions de callback.

// écoute l'événement 'start' et attend des arguments supplémentaires
el.on('start', function(engine_details, is_rainy_day) {

})

// déclenche l'événement start avec des paramètres supplémentaires
el.trigger('start', { fuel: 89 }, true)

@returns - retourne el

Espaces de noms (namespaces)

Les évènements peuvent être classés dans des espaces de noms sur un seul niveau en utilisant . comme délimiteur. Les évènements dans les espaces de noms écoutent l’évènement de base et peuvent être spécifiquement déclenchés ou supprimés.

// écoute les évènements start et start.honda
el.on('start.honda', function() {
})

// déclenche tous les évènements start (y-compris start.honda)
el.trigger('start')

// déclenche uniquement l'évènement start.honda
el.trigger('start.honda')

// supprime uniquement l'écouteur d'évènement start.honda
el.off('start.honda')

// supprime tous les écouteurs d'évènements start (y-compris start.honda)
el.off('start')