Backbone.js - Zmiany w modelach

Spisie treści
JavaScript pozwala nam na wykorzystanie zdarzeń asynchronicznych, za pomocą których możemy generować akcje, dzięki temu mamy duży sukces w korzystaniu z frameworków takich jak jQuery który może nasłuchiwać zmian w drzewie DOM i wykonywać funkcję, podczas gdy reszta strony nadal działa.
Dostęp bezpośredni
Zanim zobaczymy, jak radzić sobie ze zmianami w modelu, kluczową koncepcją, którą musimy obsłużyć, jest bezpośredni dostęp do atrybutów, dzieje się to dzięki atrybutowi .atrybuty który jest w modelu, z którego dziedziczymy, aby stworzyć nasz.
WażnyDokonując przypisania wartości tą metodą pomijamy, że jest ona detonowana w naszym modelu i przy przekazywaniu atrybut {cichy: prawda} wszystkie jego wydarzenia są całkowicie wyciszone.
Zobaczmy w poniższym przykładowym kodzie, do którego się odwołujemy:

Jak widać na przykładzie przy użyciu {cichy: prawda} nie wykrywa żadnej zmiany w naszym modelu.
Usłysz zmiany w Modelu
Słuchanie zmian w naszych modelach może być bardzo przydatne, ponieważ możemy wykonywać różne działania, dzięki czemu nasza aplikacja jest bardziej dynamiczna.
W poniższym przykładzie wypiszemy linię wskazującą każdorazową zmianę atrybutu, następnie wypiszemy wartość atrybutu, dla tego w metodzie inicjalizuj modelu dołączymy wezwanie do na metodzie a my opowiemy co to jest w przypadku reszta który powinien działać:

Jeśli wykonamy ten kod, otrzymamy linię dla każdej zmiany modelu oraz dodatkowo linię inicjującą przy inicjalizacji modelu.
Zobaczmy, co daje nam wynik:

POWIĘKSZAĆ

Widzimy, że otrzymujemy dwie linie mówiące, że model się zmienił, ta kwota zbiega się z dwoma razy, gdy używamy ser metod () Aby nadać wartość atrybutom modelu, widzimy również, jak została wydrukowana linia inicjalizacji modelu.
Posłuchaj zmian w określonym atrybucie
Ten opcja pozwala na wykonanie akcji w przypadku zmiany określonego atrybutuTo, co możemy dzięki temu osiągnąć, to to, że możemy kierować różnymi działaniami, niezależnie od tego, czy zmienia się jeden atrybut, czy inny, dzięki temu uzyskamy znacznie bardziej dynamiczną niezależność zdarzeń w aplikacji.
Zobaczmy w poniższym kodzie, jak możemy to zrobić:
 var Todo = Backbone.Model.extend ({// Domyślne wartości atrybutów: {title: '', zakończone: ''}, initialize: function () {console.log ('Ten model został zainicjowany'); this.on ('change: title', function() {console.log ('Wartość atrybutu title uległa zmianie.');});}, setTitle: function (newTitle) {this.set ({title: newTitle} );}}); var myTodo = nowe Todo (); // Obie formy wywołują zdarzenie zmiany: myTodo.set ('title', 'Umieściliśmy początkowy tytuł.'); myTodo.setTitulo ('Zmieniliśmy tytuł.'); myTodo.set ('zakończone', 'Nie wyzwala zdarzenia'); 

Na poniższym obrazku możemy zobaczyć, jak wszystko wygląda po wykonaniu kodu z poprzedniego ćwiczenia:

POWIĘKSZAĆ

Możemy naprawić, że tylko zmiana atrybutu title wyzwala zdarzenie, przy zmianie atrybutu zakończonego nic się nie dzieje i dlatego nic nie jest drukowane przez konsolę.
Na końcu tego samouczka mamy już znacznie szerszą wiedzę na temat obsługi różnych zdarzeń naszej aplikacji w Backbone.js.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave