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:
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:
La oss se hva resultatet gir oss:
FORSTØRRE
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
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