¿Por qué necesito "reabrir clase" para configurar la URL de un modelo de datos de brasas?
-
12-12-2019 - |
Pregunta
Descubrí que si intento incluir la URL en la definición original de un modelo de datos de brasas, explota en mi adaptador REST, pero si simplemente "reabroClase" está bien.
¿Cuál es la razón técnica detrás de esto?(a continuación se muestra el ejemplo práctico)
CodeCamp.Speaker = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
session: DS.belongsTo('CodeCamp.Session')
});
CodeCamp.Speaker.reopenClass({
url: 'sessions/%@/speakers'
});
Solución
Vocación extend
en un objeto establece atributos de instancia, mientras que reopenClass
establece atributos de clase.
El url
atributo es un atributo de nivel de clase,
Ember.get(CodeCamp.Speaker, 'url')
Opuesto a:
speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
Otros consejos
Tenga en cuenta también que puede ampliar una instancia utilizando simplemente reopen
.El documento de Emberjs contiene un ejemplo que puede encontrar en http://emberjs.com/guides/object-model/reopening-classes-and-instances/
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow