Turinys
Javascript leidžia mums naudoti asinchroninius įvykius, su kuriais galime generuoti veiksmus, todėl mums labai sekasi naudoti tokias sistemas kaip „jQuery“ kuris gali išklausyti DOM medžio pakeitimą ir atlikti funkciją, kol likusi puslapio dalis vis dar veikia.Tiesioginė prieiga
Prieš matydami, kaip elgtis su modelio pakeitimais, pagrindinė sąvoka, kurią turime tvarkyti, yra tiesioginė prieiga prie atributų, tai yra dėl atributo .atributai kuris yra tame modelyje, iš kurio mes paveldime, kad padarytume savo.
SvarbuPriskirdami reikšmes naudodami šį metodą, praleidžiame, kad jis būtų detonuotas mūsų modelyje ir perduodamas atributas {tylus: tiesa} visi jo įvykiai yra visiškai nutildyti.
Pažvelkime į šį pavyzdinį kodą, kurį mes nurodome:
Kaip matome pavyzdyje naudojant {tylus: tiesa} jis nenustato jokių mūsų modelio pokyčių.
Išgirskite modelio pokyčius
Mūsų modelių pokyčių klausymas gali būti labai naudingas, nes galime atlikti skirtingus veiksmus, taip suteikdami savo programai daugiau dinamiškumo.
Šiame pavyzdyje mes atspausdinsime eilutę, nurodančią kiekvieną kartą, kai pasikeičia atributas, tada atspausdinsime atributo vertę, kaip tai daroma metodu inicijuoti modelio, į kurį įtraukiame skambutį apie metodą ir mes jums pasakysime, kas tai yra įvykio metu keistis kuris turėtų veikti:
Jei vykdysime šį kodą, kiekvieną kartą, kai keičiasi modelis, gausime eilutę ir papildomai pradinę eilutę, kai modelis bus inicijuotas.
Pažiūrėkime, ką mums duoda rezultatas:
DIDELIS
Matome, kad gauname dvi eilutes, kuriose sakoma, kad modelis pasikeitė, ši suma sutampa su dviem kartus, kai naudojame metodas ser () Norėdami suteikti modelio atributų vertę, taip pat matome, kaip buvo išspausdinta modelio inicijavimo eilutė.Išgirsti tam tikro atributo pakeitimus
Tai parinktis leidžia mums atlikti veiksmą, kai pasikeičia tam tikras atributasTai galime pasiekti tuo, kad galime nukreipti skirtingus veiksmus, nesvarbu, ar pasikeis vienas ar kitas atributas, ir taip pasieksime daug dinamiškesnę programos įvykių nepriklausomybę.
Pažvelkime į šį kodą, kaip tai padaryti:
var Todo = Backbone.Model.extend ({// Numatytosios atributų reikšmės pagal nutylėjimą: {title: '', complete: ''}, initialize: function () {console.log ('Šis modelis buvo inicijuotas'); this.on ('change: title', function () {console.log ('Pavadinimo atributo vertė pasikeitė.');});}, setTitle: function (newTitle) {this.set ({title: newTitle} );}}); var myTodo = naujas Todo (); // Abi formos sukelia pasikeitimo įvykį: myTodo.set ('title', 'Mes įdėjome pradinį pavadinimą.'); myTodo.setTitulo ('Mes pakeitėme pavadinimą.'); myTodo.set ('baigtas', 'Nesukelia įvykio');
Šiame paveikslėlyje matome, kaip viskas atrodo, kai vykdome ankstesnio pratimo kodą:
DIDELIS
Galime pataisyti, kad tik pavadinimo atributo pakeitimas sukelia įvykį, keičiant užbaigtą atributą nieko neįvyksta, todėl konsolė nieko nespausdina.Šios pamokos pabaigoje mes jau turime daug platesnių žinių apie įvairių mūsų programos įvykių tvarkymą Backbone.js.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką