การโยงข้อมูล 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>