Jednoduchý příklad jednosměrné a obousměrné vazby v Angularu 8
Jednosměrná vazba:
V tomto článku si ukážeme, jak můžeme vázat vlastnosti v režimu One Way binding, který je také známý jako Property Binding. Jednosměrná vazba váže vlastnost z Komponenty do Zobrazení. Problémem zde však je, že pokud změníte hodnotu téže vlastnosti na html stránce, pak se neaktualizuje na úrovni Komponenty, hodnota této vlastnosti v komponentě zůstane stejná. Kde můžeme použít jednosměrnou vazbu:
- Zobrazení hodnot získaných z databáze a načtených do vlastnosti nebo Modelu deklarovaného na úrovni komponenty
txtName: string=“Test 1″;
- Výsledek jakéhokoli výpočtu provedeného dynamicky na úrovni komponenty lze aktualizovat na straně View pouhým přiřazením nejnovější hodnoty této vlastnosti na úrovni komponenty, jak je uvedeno níže:
this.txtName = „Test 2“;
Jak použít jednosměrnou vazbu:
Postup 1: Pokud pouze zobrazujete hodnotu vlastnosti v <div>, jak je uvedeno níže, pak použijte následující syntaxi:
<div>Name is: {
Přístup 2: Pokud používáte Text-box a chcete zobrazit hodnotu této vlastnosti v Text-boxu, pak k tomu můžete použít následující syntaxi:
<input type=“text“ =“txtName“ />
Ve výše uvedené syntaxi jsme použili pouze hranatou závorku, což je způsob, jak dosáhnout jednosměrné vazby dat. Pokud spolu s hranatou závorkou přidáte také kulatou závorku, stane se z ní obousměrná datová vazba.
Obousměrná vazba:
Při ní se hodnota vlastnosti aktualizovaná z komponenty promítne do zobrazení a naopak. Jak je uvedeno v následujícím příkladu, obousměrná vazba se použije pro vlastnost, která je namapována na textové pole nebo jiný typ vstupního pole. Tímto způsobem se jakákoli změna hodnoty pole Text-box automaticky promítne do všech míst, kde je tato vlastnost zobrazena nebo použita.
<input type=“text“ =“txtName“ />
Jak ukazuje výše uvedená syntaxe, musíme ngModel uzavřít do hranaté i kulaté závorky. Tím se výše uvedené vstupní pole Text-box stává obousměrnou datovou vazbou.
Ukázka kompletní jednosměrné a obousměrné datové vazby v systému Angular 8:
Následují data souboru sample-data-binding.component.ts:
Následují data souboru sample-data-binding.component.html data:
Výsledek výše uvedeného kódu je:
Podle výše uvedeného příkladu, když načteme tuto stránku, tak se při načtení zobrazí „Test 1“ jako hodnota zobrazená na všech místech, když změníme hodnotu prvního Text-boxu, tak se pouze změní hodnota stejného Text-boxu, neaktualizuje hodnoty na všech místech, protože se jedná o One-Way data binding, ale pokud změníte druhý Text-box, který je Two-Way data binding, tak se aktualizuje toto pole na všech místech na View a na Component.