¿Por qué necesito "reabrir clase" para configurar la URL de un modelo de datos de brasas?

StackOverflow https://stackoverflow.com//questions/12679998

  •  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'
});
¿Fue útil?

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
scroll top