AngularJS Data Binding
Datová vazba v AngularJS je synchronizace mezi modelem a pohledem.
Datový model
Aplikace AngularJS obvykle mají datový model. Datový model je soubor dat dostupných pro aplikaci.
Příklad
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstname
= "John";
$scope.lastname = "Doe";
});
HTML zobrazení
HTML kontejner, kde je zobrazena aplikace AngularJS, se nazývá pohled.
Pohled má přístup k modelu a existuje několik způsobů, jak v pohledu zobrazit data modelu.
Můžete použít ng-bind
direktivu, která sváže innerHTML prvku se zadanou vlastností modelu:
Příklad
<p ng-bind="firstname"></p>
K zobrazení obsahu z modelu můžete také použít dvojité závorky :{{ }}
Příklad
<p>First name: {{firstname}}</p>
Nebo můžete použít ng-model
direktivu pro ovládací prvky HTML k propojení modelu s pohledem.
Směrnice ng-model
_
Použijte ng-model
direktivu k propojení dat z modelu s pohledem na ovládací prvky HTML (vstup, výběr, textová oblast)
Příklad
<input ng-model="firstname">
Směrnice ng-model
poskytuje obousměrnou vazbu mezi modelem a pohledem.
Oboustranná vazba
Datová vazba v AngularJS je synchronizace mezi modelem a pohledem.
Když se změní data v modelu , pohled odráží změnu, a když se změní data v pohledu , model se také aktualizuje. To se děje okamžitě a automaticky, což zajišťuje, že model a pohled jsou neustále aktualizovány.
Příklad
<div ng-app="myApp" ng-controller="myCtrl">
Name: <input ng-model="firstname">
<h1>{{firstname}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstname
= "John";
$scope.lastname = "Doe";
});
</script>
Ovladač AngularJS
Aplikace v AngularJS jsou řízeny ovladači. Přečtěte si o ovladačích v kapitole AngularJS Controllers .
Díky okamžité synchronizaci modelu a pohledu lze ovladač zcela oddělit od pohledu a jednoduše se soustředit na data modelu. Díky datové vazbě v AngularJS bude pohled odrážet veškeré změny provedené v ovladači.
Příklad
<div ng-app="myApp" ng-controller="myCtrl">
<h1 ng-click="changeName()">{{firstname}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstname
= "John";
$scope.changeName
= function() {
$scope.firstname
= "Nelly";
}
});
</script>