Привязка данных AngularJS
Привязка данных в AngularJS — это синхронизация между моделью и представлением.
Модель данных
Приложения AngularJS обычно имеют модель данных. Модель данных представляет собой набор данных, доступных для приложения.
Пример
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstname
= "John";
$scope.lastname = "Doe";
});
HTML-просмотр
Контейнер HTML, в котором отображается приложение AngularJS, называется представлением.
Представление имеет доступ к модели, и существует несколько способов отображения данных модели в представлении.
Вы можете использовать ng-bind
директиву, которая привяжет innerHTML элемента к указанному свойству модели:
Пример
<p ng-bind="firstname"></p>
Вы также можете использовать двойные фигурные скобки для отображения содержимого модели:{{ }}
Пример
<p>First name: {{firstname}}</p>
Или вы можете использовать ng-model
директиву для элементов управления HTML, чтобы связать модель с представлением.
ng-model
Директива _
Используйте ng-model
директиву для привязки данных из модели к представлению элементов управления HTML (ввод, выбор, текстовое поле)
Пример
<input ng-model="firstname">
Директива ng-model
обеспечивает двустороннюю привязку между моделью и представлением.
Двусторонняя привязка
Привязка данных в AngularJS — это синхронизация между моделью и представлением.
Когда данные в модели изменяются, представление отражает изменение, а когда изменяются данные в представлении , модель также обновляется. Это происходит немедленно и автоматически, что гарантирует постоянное обновление модели и представления.
Пример
<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>
Контроллер AngularJS
Приложения в AngularJS управляются контроллерами. Читайте о контроллерах в главе Контроллеры AngularJS .
Благодаря непосредственной синхронизации модели и представления контроллер можно полностью отделить от представления и просто сосредоточиться на данных модели. Благодаря привязке данных в AngularJS представление будет отражать любые изменения, сделанные в контроллере.
Пример
<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>