Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| richclient:emberjs:services [2018/01/26 11:35] – jcheron | richclient:emberjs:services [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| Un service Ember (**Ember.Service**) est un objet dont la durée de vie est celle de l' | Un service Ember (**Ember.Service**) est un objet dont la durée de vie est celle de l' | ||
| - | Les services peuvent être utiliser | + | Les services peuvent être utilisés |
| * User/ | * User/ | ||
| * Geolocation. | * Geolocation. | ||
| Ligne 11: | Ligne 11: | ||
| * Logging. | * Logging. | ||
| + | ===== Création ===== | ||
| + | Avec ember-cli : | ||
| + | <sxh bash; | ||
| + | ember generate service shopping-cart | ||
| + | </ | ||
| + | |||
| + | Un service hérite de la classe **Ember.Service** : | ||
| + | |||
| + | <sxh javascript; | ||
| + | import Ember from ' | ||
| + | |||
| + | export default Ember.Service.extend({ | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | |||
| + | Comme les autres objets Ember, un service est initialisé (init) et peut avoir des propriétés et des méthodes. Ci-dessous, le service shopping cart permet de gérer un tableau d' | ||
| + | |||
| + | <sxh javascript; | ||
| + | import Ember from ' | ||
| + | |||
| + | export default Ember.Service.extend({ | ||
| + | items: null, | ||
| + | |||
| + | init() { | ||
| + | this._super(...arguments); | ||
| + | this.set(' | ||
| + | }, | ||
| + | |||
| + | add(item) { | ||
| + | this.get(' | ||
| + | }, | ||
| + | |||
| + | remove(item) { | ||
| + | this.get(' | ||
| + | }, | ||
| + | |||
| + | empty() { | ||
| + | this.get(' | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | ===== Accès à un service ===== | ||
| + | L' | ||
| + | |||
| + | <sxh javascript; | ||
| + | import Ember from ' | ||
| + | |||
| + | export default Ember.Component.extend({ | ||
| + | //will load the service in file / | ||
| + | shoppingCart: | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | |||
| + | <sxh javascript; | ||
| + | import Ember from ' | ||
| + | |||
| + | export default Ember.Component.extend({ | ||
| + | //will load the service in file / | ||
| + | cart: Ember.inject.service(' | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | |||
| + | Utilisation du service injecté dans une action (accès par son getter) : | ||
| + | <sxh javascript; | ||
| + | import Ember from ' | ||
| + | |||
| + | export default Ember.Component.extend({ | ||
| + | cart: Ember.inject.service(' | ||
| + | |||
| + | actions: { | ||
| + | remove(item) { | ||
| + | this.get(' | ||
| + | } | ||
| + | } | ||
| + | }); | ||
| + | </ | ||