Jest to znana cecha backbone.js że po ustawieniu danych, które nie zmieniło się to nie będzie ognia zdarzenie zmieni, ani nie przechodzą walidacji. Potrzebuję jednak zdarzenia zmiany, aby wystrzelić, ponieważ przechowuję odpowiedź JSON z wywołania AJAX, która przechowuje wyniki sprawdzania poprawności zaplecza. Jeśli użytkownik nadal przesyła formularz, pozostawiając puste pole, walidacja backendu zwróci ten sam wynik JSON, a po zapisaniu go w modelu nie spowoduje zdarzenia zmiany.wyzwalania backbone.js zmienia się, gdy wartość nie zmienia
kilka rzeczy próbowałem w sukces wywołania zwrotnego AJAX gdzie ustawić dane do modelu
Próba Rozwiązanie nr 1
t.model.unset('fieldErrors',{silent: true});
t.model.set({fieldErrors: JSONResponse});
Próba Rozwiązanie nr 2
t.model.set({fieldErrors: null},{silent: true});
t.model.set({fieldErrors: JSONResponse});
Żadna z tych wyników w przypadku zmian odpalanych po raz drugi, gdy połączenie jest wykonane, a użytkownik ma ten sam JSONResponse.
Jeśli nie boi boilerplate, patrz odpowiedź ScottPuleo użytkownika. W przeciwnym razie możesz przesłonić metodę 'Model # set', aby zawsze uruchamiać zdarzenie niestandardowe (opublikuję odpowiedź, jeśli jesteś zainteresowany). – Loamhoof