2012-10-01 11 views
7

Descubrí que si trato de incluir la url en la definición original de un modelo de datos de ascuas explota en mi adaptador REST, pero si simplemente "vuelvo a abrir Class" está bien.¿Por qué tengo que "volver a abrir Class" para configurar la url para un modelo de datos ember?

¿Cuál es la razón técnica detrás de esto? (A continuación es el ejemplo de trabajo)

CodeCamp.Speaker = DS.Model.extend({ 
    id: DS.attr('number'), 
    name: DS.attr('string'), 
    session: DS.belongsTo('CodeCamp.Session') 
}); 

CodeCamp.Speaker.reopenClass({ 
    url: 'sessions/%@/speakers' 
}); 

Respuesta

15

Calling extend sobre un objeto establece ejemplo atributos, mientras que los atributos de clase reopenClass sets.

url El atributo es un atributo de nivel de clase,

Ember.get(CodeCamp.Speaker, 'url') 

en contraposición a:

speaker = CodeCamp.Speaker.createObject() 
Ember.get(speaker, 'name') 
+0

¡increíble! ¡Exactamente lo que estaba buscando! –

+0

pero no es 'DS.Model' una clase y NO es un objeto? ¿Por qué entonces dices que estamos llamando extender sobre un objeto? Estoy un poco confundido. – Aras

Cuestiones relacionadas