richclient:emberjs:modelobjet

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
richclient:emberjs:modelobjet [2018/01/20 16:41] – [Création de classes] jcheronrichclient:emberjs:modelobjet [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 18: Ligne 18:
   }   }
 }); });
 +</sxh>
 +
 +===== Instanciation =====
 +L'instanciation d'un objet se fait par appel de la méthode **create** sur la classe.
 +
 +<sxh javascript>
 +let person = Person.create();
 +person.say('Hello'); // alerts " says: Hello"
 +</sxh>
 +
 +La méthode create accepte en paramètre un objet js permettant d'initialiser/créer des membres :
 +
 +<sxh javascript>
 +import EmberObject from '@ember/object';
 +
 +const Person = EmberObject.extend({
 +  helloWorld() {
 +    alert(`Hi, my name is ${this.get('name')}`);
 +  }
 +});
 +
 +let tom = Person.create({
 +  name: 'Tom Dale'
 +});
 +
 +tom.helloWorld(); // alerts "Hi, my name is Tom Dale"
 </sxh> </sxh>
  
 ===== Héritage/surdéfinition ===== ===== Héritage/surdéfinition =====
 +
 +  * L'héritage est mis en place grace à la méthode **extend()**
 +  * La surdéfinition par l'appel de **_super()**
  
 <sxh javascript> <sxh javascript>
Ligne 48: Ligne 77:
 ===== Initialisation/construction ===== ===== Initialisation/construction =====
  
-Quand un objet est instancié, la méthode **init()** de sa classe est invoquée automatiquement. La méthode init permet d'initialiser chaque instance :+Quand un objet est instancié, la méthode **init()** de sa classe est invoquée automatiquement.
  
 +<sxh javascript>
 +import EmberObject from '@ember/object';
  
-===== Instanciation =====+const Person EmberObject.extend({ 
 +  init() { 
 +    alert(`${this.get('name')}, reporting for duty!`); 
 +  } 
 +}); 
 + 
 +Person.create({ 
 +  name: 'Stefan Penner' 
 +}); 
 + 
 +// alerts "Stefan Penner, reporting for duty!" 
 +</sxh> 
 + 
 +La méthode init permet d'initialiser chaque instance. 
 + 
 + 
 +===== getters/setters ====
 + 
 +L'accès aux propriétés d'un objet doit se faire en passant par les accesseurs **get()** et **set()**, faute de quoi computed properties et observers ne sont pas sollicités et ne mettent pas à jour les données (dans un template par exemple)
  
 <sxh javascript> <sxh javascript>
 +import EmberObject from '@ember/object';
 +
 +const Person = EmberObject.extend({
 +  name: 'Robert Jackson'
 +});
 +
 let person = Person.create(); let person = Person.create();
-person.say('Hello'); // alerts " says: Hello"+ 
 +person.get('name'); // 'Robert Jackson' 
 +person.set('name', 'Tobias Fünke'); 
 +person.get('name'); // 'Tobias Fünke'
 </sxh> </sxh>
 +
  
  
  
  • richclient/emberjs/modelobjet.1516462887.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)