Des accesseurs de type get sur des modèles

Cet article est la traduction de Getters on ModelsGetters on Models publié sur ExtJS TutorialsExtJS Tutorials.

Article lu   fois.

Les deux auteur et traducteur

Site personnel

Traducteur :

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Explications

La méthode de conversionconvert d'un champ du modèle est appelée lorsqu'une valeur est définie (pas lue), ce qui n'est pas le mieux.

Cette méthode est également appelée lorsqu'un modèle est construit, avant que les associations ne soient chargées. Ce qui signifie que vous ne devriez pas l'utiliser comme un pseudo-accesseur.

II. Champ virtuel

Voici comment faire un champ virtuel sur un modèle :

 
Sélectionnez
Ext.define('My.model.Contact', {
  extend:'Ext.data.Model',
 
  getfull_name: function(){
    return this.get('first_name') + ' ' + this.get('last_name');
  },
 
  fields:[
    'first_name',
    'last_name'
  ],
 
  /* réécriture de Model.get */
  get: function(field){
    if(this['get'+field]) return this['get'+field](); //si get<field> existe, l'appeler
    else return this.callParent(arguments); //sinon, utiliser le get normal
  }
});


Utilisation :

 
Sélectionnez
var contact = Ext.create('My.model.Contact');
contact.set('first_name');
contact.set('last_name');
 
console.log(contact.get('full_name'));

III. Remerciements

Cet article a été publié avec l'aimable autorisation de Neil McGuigan. L'article original peut être lu sur le blog ExtJS TutorialsExtJS Tutorials : Getters on ModelsGetters on Models.
Je remercie également ram-0000 pour sa relecture rapide.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2012 Neil McGuigan. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.