Backbone.js - Ändringar i modeller

Innehållsförteckning
Javascript tillåter oss att använda asynkrona händelser som vi kan generera handlingar med, på grund av detta har vi stor framgång i användningen av ramar som t.ex. jQuery som kan lyssna efter en förändring i DOM -trädet och utföra en funktion medan resten av sidan fortfarande fungerar.
Direkt tillgång
Innan vi ser hur vi hanterar förändringar inom modellen, är ett nyckelbegrepp som vi måste hantera direktåtkomst till attribut, detta tack vare ett attribut .attribut som finns i modellen från vilken vi ärver för att göra vår.
ViktigNär vi tilldelar värden med den här metoden hoppar vi över att den är detonerad i vår modell och när vi passerar attribut {tyst: sant} alla dess händelser är helt tysta.
Låt oss se i följande exempelkod som vi hänvisar till:

Som vi kan se i exemplet när du använder {tyst: sant} det upptäcker ingen förändring i vår modell.
Hör förändringar i modellen
Att lyssna på förändringar i våra modeller kan vara mycket användbart eftersom vi kan utföra olika åtgärder, vilket ger vår applikation mer dynamik.
I följande exempel kommer vi att skriva ut en rad som anger varje gång ett attribut ändras, sedan skriver vi ut attributets värde, för detta i metoden initiera av modellen kommer vi att inkludera ett samtal till på metod och vi kommer att berätta vad det är i händelsen förändra som borde fungera:

Om vi ​​kör den här koden får vi en rad för varje gång modellen ändras och dessutom en första rad när modellen initieras.
Låt oss se vad resultatet ger oss:

FÖRSTORA

Vi ser att vi får två rader som säger att modellen har ändrats, detta belopp sammanfaller med de två gånger vi använder metod ser () För att ge ett värde till modellens attribut ser vi också hur modellinitialiseringsraden skrevs ut.
Hör förändringar av ett visst attribut
Detta alternativet låter oss utföra en åtgärd när ett visst attribut ändrasVad vi kan uppnå med detta är att vi kan styra olika handlingar oavsett om ett attribut ändras eller annat, med detta kommer vi att uppnå ett mycket mer dynamiskt oberoende av händelser i applikationen.
Låt oss se i följande kod hur vi kan göra detta:
 var Todo = Backbone.Model.extend ({// Standardvärden för attributvärden: {title: '', complete: ''}, initialize: function () {console.log ('Denna modell har initierats'); this.on ('change: title', function () {console.log ('Titelattributets värde har ändrats.');});}, setTitle: function (newTitle) {this.set ({title: newTitle} );}}); var myTodo = nya Todo (); // Båda formerna utlöser ändringshändelsen: myTodo.set ('titel', 'Vi har placerat en initial titel.'); myTodo.setTitulo ('Vi har ändrat titeln.'); myTodo.set ('slutförd', 'Utlöser inte händelse'); 

I följande bild kan vi se hur allt ser ut efter att vi har kört koden från föregående övning:

FÖRSTORA

Vi kan fixa att endast ändringen av titelattributet utlöser händelsen, när du ändrar det slutförda attributet händer ingenting och därför skrivs ingenting ut av konsolen.
I slutet av denna handledning har vi redan en mycket bredare kunskap om hanteringen av de olika händelserna i vår applikation i Backbone.js.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave