Usando Backbone.js Sé que es muy recomendable establecer la propiedad de un modelo usando el método set, y NO modificando directamente el attributes internal hash.backbone.js establece los atributos internos del modelo hash directamente
Sin embargo, aparte de no activar automáticamente el evento de "cambio", ¿qué otras contras o efectos colaterales existen al modificar el hash interno directamente?
El problema que estoy enfrentando es que mientras que el método set toma un objeto literal, necesito asignar el lado izquierdo usando una variable determinada en tiempo de ejecución. Gracias.
myModel.set({
myProperty : myValue; //myProperty is a variable, so this is invalid syntax
})
//vs
myModel.attributes[myProperty] = myValue; //myProperty is a variable that can be evaluated
Creo que su solución es brillante. ¡Esta función debería fusionarse en nuevas versiones de Backbone! Gracias también por señalar el código fuente anotado; tienes razón, debería haberlo visto en primer lugar. – fortuneRice
¡agradable! He escrito este código una docena de veces y nunca pensé en convertirlo en un método. :) por cierto: no hay necesidad de usar _.extend para esto. 'Backbone.Model.prototype.setByName = function (...) {...}' hace lo mismo ... funcionalmente igual. solo una manera diferente de hacerlo. –
@Derick Bailey: Gracioso ... pensé que '_.extend' tenía algunos conocimientos adicionales para extender prototipos ... no. Es realmente para extender cualquier objeto con una colección de cambios. Nada loco allí. Cambiar mi respuesta para reconocer eso. Gracias. –