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:modelobjet:computed [2018/01/21 12:48] – [Macros] jcheron | richclient:emberjs:modelobjet:computed [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 34: | Ligne 34: | ||
Dans ce cas, la propriété **fullName** sera automatiquement mise à jour sur les changements de **firstName** ou **lastName**. | Dans ce cas, la propriété **fullName** sera automatiquement mise à jour sur les changements de **firstName** ou **lastName**. | ||
+ | |||
+ | ===== Affectation : setter ===== | ||
+ | Il est possible de faire en sorte qu'une computed property soit modifiable :\\ | ||
+ | Il suffit dans ce cas de définir sa méthode **set** : | ||
+ | |||
+ | <sxh javascript> | ||
+ | import EmberObject, | ||
+ | |||
+ | Person = EmberObject.extend({ | ||
+ | firstName: null, | ||
+ | lastName: null, | ||
+ | |||
+ | fullName: computed(' | ||
+ | get(key) { | ||
+ | return `${this.get(' | ||
+ | }, | ||
+ | set(key, value) { | ||
+ | let [firstName, lastName] = value.split(/ | ||
+ | this.set(' | ||
+ | this.set(' | ||
+ | return value; | ||
+ | } | ||
+ | }) | ||
+ | }); | ||
+ | |||
+ | |||
+ | let captainAmerica = Person.create(); | ||
+ | captainAmerica.set(' | ||
+ | captainAmerica.get(' | ||
+ | captainAmerica.get(' | ||
+ | </ | ||
+ | |||
===== Macros ===== | ===== Macros ===== | ||
Ligne 56: | Ligne 88: | ||
|< 100% >| | |< 100% >| | ||
- | ^Macro | + | ^Macro |
- | |and(keys) | effectue un ET logique entre les propriétés passées | + | |and |<sxh javascript; |
- | |bool(keys) | convertit en booléen les propriétés | + | |bool |<sxh javascript; |
- | |collect(keys) | retourne un tableau des valeurs des propriétés | | + | |collect |<sxh javascript; |
- | |empty(keys) | retourne vrai si les propriétés passées sont vides (null, chaîne vide, tableau vide...) | | + | |empty |<sxh javascript; |
- | |<sxh javascript; | + | |equal |
+ | |filter |<sxh javascript; | ||
+ | remainingChores: | ||
+ | return !chore.get(' | ||
+ | }) | ||
+ | });</ | ||
+ | |filterBy |<sxh javascript; | ||
+ | remainingChores: | ||
+ | });</ | ||