Obsah
Javascript nám umožňuje používat asynchronní události, pomocí kterých můžeme generovat akce, díky tomu máme velký úspěch při používání rámců, jako jsou jQuery který může poslouchat změnu ve stromu DOM a spustit funkci, zatímco zbytek stránky stále funguje.Přímý přístup
Než uvidíme, jak zvládnout změny v modelu, klíčový koncept, který musíme zvládnout, je přímý přístup k atributům, to je díky atributu .atributy který je v modelu, ze kterého zdědíme, aby byl náš.
DůležitéPři přiřazování hodnot pomocí této metody přeskočíme, že je detonována v našem modelu a při předávání atribut {tichý: true} všechny jeho události jsou zcela umlčeny.
Podívejme se na následující ukázkový kód, na který odkazujeme:
Jak vidíme na příkladu při použití {tichý: true} nedetekuje žádnou změnu v našem modelu.
Poslechněte si změny v modelu
Naslouchání změnám v našich modelech může být velmi užitečné, protože můžeme provádět různé akce, což naší aplikaci dodá větší dynamiku.
V následujícím příkladu vytiskneme řádek označující pokaždé, když se atribut změní, pak vytiskneme hodnotu atributu, a to v metodě inicializovat modelu, do kterého zahrneme volání na metodě a my vám řekneme, co to je v případě změna který by měl fungovat:
Pokud spustíme tento kód, získáme řádek pro každou změnu modelu a navíc počáteční řádek při inicializaci modelu.
Podívejme se, co nám výsledek dává:
ZVĚTŠIT
Vidíme, že dostaneme dva řádky, které říkají, že se model změnil, toto množství se shoduje s dvěma časy, které používáme metoda ser () Abychom dali hodnotu atributům modelu, vidíme také, jak byla vytištěna inicializační čára modelu.Poslechněte si změny konkrétního atributu
Tento volba nám umožňuje provést akci, když se změní konkrétní atributToho, čeho můžeme dosáhnout, je to, že můžeme směrovat různé akce, ať už se změní jeden nebo jiný atribut, čímž dosáhneme mnohem dynamičtější nezávislosti událostí v aplikaci.
Podívejme se v následujícím kódu, jak to můžeme udělat:
var Todo = Backbone.Model.extend ({// Výchozí hodnoty atributů výchozí: {title: '', dokončeno: ''}, initialize: function () {console.log ('Tento model byl inicializován'); this.on ('change: title', function () {console.log ('The title attribute value has changed.');});}, setTitle: function (newTitle) {this.set ({title: newTitle} );}}); var myTodo = new Todo (); // Oba formuláře spouští událost změny: myTodo.set ('title', 'Vložili jsme počáteční název.'); myTodo.setTitulo ('Změnili jsme název.'); myTodo.set ('dokončeno', 'nespouští událost');
Na následujícím obrázku můžeme vidět, jak vše vypadá poté, co spustíme kód z předchozího cvičení:
ZVĚTŠIT
Můžeme opravit, že událost spustí pouze změna atributu title, při změně vyplněného atributu se nic nestane, a proto konzola nic nevytiskne.Na konci tohoto tutoriálu již máme mnohem širší znalosti týkající se zpracování různých událostí naší aplikace v Backbone.js.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod