Algo que encuentro muy contrario a la intuición sobre Ember es que puede sobreescribir una función calculada de las funciones de configuración (http://emberjs.com/#toc_computed-properties-setters) con los argumentos a create()
. Veo http://jsfiddle.net/zJQJw/2/¿Por qué los argumentos para crear() se comportan más bien como setProperties()?
He encontrado la mejor solución para esto es llamar create().setProperties(properties)
en lugar de create(properties)
, pero esto parece una Gotcha innecesaria para mí. Me doy cuenta de que podría romper algunas aplicaciones en este punto, pero ¿consideraría hacer que create()
se comporte más como setProperties()
?
Mi motivación para solicitar esto es que se llamará init()
antes de setProperties()
cuando se utiliza el patrón create().setProperties(properties)
. Este no ha sido un gran problema todavía, pero puedo ver que esto es indeseable en algunas situaciones. Este es un ejemplo completamente artificial, pero ¿quizás puedes ver a qué me refiero? http://jsfiddle.net/QJ8vX/2/
La única razón que puedo ver para mantener el comportamiento actual es realizar anulaciones específicas de instancias de métodos setter. Pero en esos casos, podría hacer tan fácilmente MyClass.extend({ overridenMethod: ... }).create(properties)
¿Se consideraría un cambio como este para Ember 1.0? ¿O simplemente tengo una idea equivocada sobre cómo debería funcionar el modelo de objetos de Ember?
me sacaste a este problema exacto en el canal, sobre todo académicamente, y la respuesta fue (parafraseando) "No nos veo cambiar el comportamiento de crear". Sin embargo, te animo a que abras un debate sobre github. –
He archivado https://github.com/emberjs/ember.js/issues/777, así que siéntete libre de entrar por allí. –
un par de nosotros también hemos debatido con el equipo de bomberos sobre esto, y básicamente dijeron que no lo están cambiando. Estoy de acuerdo contigo. –