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(' | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | </ |