Estoy desarrollando una aplicación web jQuery Backbone.js.
Como está en Adobe Flex, he implementado el enlace de datos bidireccional en mi aplicación para los elementos/widgets de entrada . Por lo tanto, cada elemento/widget de entrada conoce su modelo y nombre de atributo de modelo correspondientes.
Cuando el usuario toca la pestaña o ingresa, el valor del campo se asigna automáticamente al modelo.Enlace de datos bidireccional en backbone.js
container.model.set(this.attrName, this.value, options); // command 1
En la otra dirección, cuando el modelo se actualiza desde el servidor, la vista del elemento entrada/artilugios deben automáticamente actualización:
container.model.bind("change:"+ this.attrName, this.updateView, this); // command 2
El problema es:
Cuando el usuario pulsa enter y el modelo se actualiza automáticamente, también se activa el "change: abc" y se llama a this.updateView, no solo cuando un nuevo modelo proviene del back-end .
Mi solución hasta ahora era pasar una opción "fuente: gui" cuando establecía el valor del modelo cuando el usuario presiona enter (comando 1), y para verificarlo en mi método updateView. Pero ya no estoy satisfecho con esta solución.
¿Alguien tiene una solución mejor? Muchas gracias de antemano
Wolfgang
Actualización:
Cuando la opción de silencio: se pasa cierto, el método de validación del modelo no se llama, por lo que no ayuda. Véase la procedencia Backbone.js 0.9.2:
_validate: function(attrs, options) {
if (options.silent || !this.validate) return true;
Gracias Daniel. Pero con esta opción, no se llama a "validar". Entonces no me ayuda. –
Hola, Wolfgang, vi tu nueva actualización y agregué una solución. =) –