เชิงมุม
เมื่อเชิงมุมตั้งค่าการเชื่อมโยงฐานข้อมูล "ผู้เฝ้าดู" สองคน (นี่คือการทำให้เข้าใจง่าย)
//js
$scope.name = 'test';
$timeout(function() { $scope.name = 'another' }, 1000);
$timeout(function() { console.log($scope.name); }, 5000);
<!-- html --->
<input ng-model="name" />
อินพุตจะเริ่มต้นด้วยtestจากนั้นอัปเดตเป็นanother1000ms การเปลี่ยนแปลงใด ๆ$scope.nameจากโค้ดคอนโทรลเลอร์หรือโดยการเปลี่ยนอินพุตจะแสดงในบันทึกคอนโซล 4000ms ในภายหลัง การเปลี่ยนแปลง<input />จะแสดงใน$scope.nameคุณสมบัติโดยอัตโนมัติเนื่องจากการng-modelตั้งค่าจะเฝ้าดูอินพุตและแจ้ง$scopeการเปลี่ยนแปลง การเปลี่ยนแปลงจากรหัสและการเปลี่ยนแปลงจาก HTML มีสองทางที่มีผลผูกพัน (ตรวจสอบซอนี้ )
ตอบสนอง
การตอบสนองไม่มีกลไกที่อนุญาตให้ HTML เปลี่ยนองค์ประกอบได้ HTML สามารถเพิ่มเหตุการณ์ที่คอมโพเนนต์ตอบสนองเท่านั้น ตัวอย่างทั่วไปคือการใช้onChange.
//js
render() {
return <input value={this.state.value} onChange={this.handleChange} />
}
handleChange(e) {
this.setState({value: e.target.value});
}
ค่าของ<input />ถูกควบคุมทั้งหมดโดยrenderฟังก์ชั่น วิธีเดียวที่จะปรับปรุงค่านี้มาจากองค์ประกอบของตัวเองซึ่งจะกระทำโดยการแนบonChangeเหตุการณ์ไป<input />ซึ่งชุดที่จะตอบสนองกับวิธีส่วนประกอบthis.state.value ไม่ได้มีการเข้าถึงโดยตรงไปยังรัฐส่วนประกอบและดังนั้นจึงไม่สามารถทำให้เกิดการเปลี่ยนแปลง นี่คือทางเดียวที่มีผลผูกพัน (ตรวจสอบนี้codepen )setState<input />