Innholdsfortegnelse
Javascript lar oss bruke asynkrone hendelser som vi kan generere handlinger med, på grunn av dette har vi stor suksess med bruk av rammer som f.eks. jQuery som kan lytte etter en endring i DOM -treet og utføre en funksjon mens resten av siden fortsatt fungerer.Direkte adgang
Før vi ser hvordan vi skal håndtere endringer i modellen, er et sentralt konsept vi må håndtere direkte tilgang til attributter, dette takket være et attributt .attributter som er i modellen som vi arver for å lage vår.
ViktigNår vi tildeler verdier ved å bruke denne metoden, hopper vi over at den er detonert i modellen vår og når vi passerer attributt {silent: true} alle hendelsene er fullstendig tause.
La oss se i følgende eksempelkode som vi refererer til:
Som vi kan se i eksemplet når du bruker {stille: sant} det oppdager ingen endring i modellen vår.
Hør endringer i modellen
Å lytte til endringer i modellene våre kan være veldig nyttig siden vi kan utføre forskjellige handlinger, og dermed gi applikasjonen vår mer dynamikk.
I det følgende eksemplet skal vi skrive ut en linje som angir hver gang et attributt endres, så skal vi skrive ut verdien av attributtet, for dette i metoden initialisere av modellen vil vi inkludere en samtale til på metode og vi vil fortelle deg hva det er i arrangementet endring som burde fungere:
Hvis vi kjører denne koden, får vi en linje for hver gang modellen endres og i tillegg en første linje når modellen initialiseres.
La oss se hva resultatet gir oss:
FORSTØRRE
Vi ser at vi får to linjer som sier at modellen har endret seg, dette beløpet faller sammen med de to gangene vi bruker metode ser () For å gi en verdi til modellens attributter, ser vi også hvordan modellinitialiseringslinjen ble skrevet ut.Hør endringer i et bestemt attributt
Dette alternativet lar oss utføre en handling når et bestemt attributt endresDet vi kan oppnå med dette er at vi kan styre forskjellige handlinger enten en attributt endrer seg eller en annen, med dette vil vi oppnå en mye mer dynamisk uavhengighet av hendelser i applikasjonen.
La oss se i følgende kode hvordan vi kan gjøre dette:
var Todo = Backbone.Model.extend ({// Standardattributtverdier standard: {title: '', fullført: ''}, initialize: function () {console.log ('Denne modellen er initialisert'); this.on ('change: title', function () {console.log ('Tittelattributtverdien er endret.');});}, setTitle: function (newTitle) {this.set ({title: newTitle} );}}); var myTodo = ny Todo (); // Begge skjemaene utløser endringshendelsen: myTodo.set ('tittel', 'Vi har plassert en innledende tittel.'); myTodo.setTitulo ('Vi har endret tittelen.'); myTodo.set ('fullført', 'Utløser ikke hendelse');
I det følgende bildet kan vi se hvordan alt ser ut etter at vi har utført koden fra forrige øvelse:
FORSTØRRE
Vi kan fikse at bare endringen av tittelattributtet utløser hendelsen, når du endrer det fullførte attributtet skjer ingenting og derfor skrives ingenting ut av konsollen.På slutten av denne opplæringen har vi allerede en mye bredere kunnskap om håndteringen av de forskjellige hendelsene i applikasjonen vår i Backbone.js.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng