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 :
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 :
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.