Es ist eine bekannte Funktion von backbone.js, dass, wenn Sie Daten setzen, die sich nicht geändert haben, das Änderungsereignis nicht ausgelöst wird und auch keine Validierungen durchgeführt werden. Ich benötige jedoch das Auslösen des Änderungsereignisses, da ich eine JSON-Antwort von einem AJAX-Aufruf speichere, die Ergebnisse der Backend-Validierung speichert. Wenn der Benutzer das Formular weiterhin sendet, während er dasselbe Feld leer lässt, wird die Backend-Validierung dieselbe JSON-Antwort zurückgeben und wenn ich sie im Modell speichere, wird das Änderungsereignis nicht ausgelöst.
Ein paar Dinge, die ich im success-Callback des AJAX ausprobiert habe, wo ich die Daten in das Modell setze:
Versuchte Lösung #1
t.model.unset('fieldErrors',{silent: true});
t.model.set({fieldErrors: JSONResponse});
Versuchte Lösung #2
t.model.set({fieldErrors: null},{silent: true});
t.model.set({fieldErrors: JSONResponse});
Keines dieser Ergebnisse führt dazu, dass das Änderungsereignis ein zweites Mal ausgelöst wird, wenn der Aufruf erfolgt und der Benutzer dieselbe JSON-Antwort hat.