Pourquoi ai-je besoin de “reopenClass” pour définir l'url d'une braise-modèle de données?
-
12-12-2019 - |
Question
J'ai trouvé que si j'essaie d'inclure l'url dans la définition originale d'une braise-modèle de données, il souffle dans mon REPOS adaptateur, mais si j'ai simplement "reopenClass" c'est très bien.
Qu'est-ce que la technique la raison derrière tout cela?(ci-dessous, l'exemple de travail)
CodeCamp.Speaker = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
session: DS.belongsTo('CodeCamp.Session')
});
CodeCamp.Speaker.reopenClass({
url: 'sessions/%@/speakers'
});
La solution
L'appel extend
sur un objet fixe instance attributs, tandis que reopenClass
définit les attributs de classe.
L' url
l'attribut est un niveau de classe de l'attribut,
Ember.get(CodeCamp.Speaker, 'url')
par opposition à:
speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
Autres conseils
Notez également que vous pouvez étendre une instance en utilisant simplement reopen
.Emberjs' docu contient un exemple que vous trouverez sur le http://emberjs.com/guides/object-model/reopening-classes-and-instances/
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow