كيف يعمل الربط الثنائي للبيانات (data binding) في AngularJS؟
مرحباً بالجميع! بدأت تعلم AngularJS ولا أستطيع فهم كيفية عمل الربط الثنائي للبيانات (two-way data binding). قرأت الوثائق ولكن ما زلت مرتبكاً.
لدي مثال بسيط لنموذج إدخال. أريد أنه عند تغيير النص في حقل الإدخال، يتم تحديث النص على الصفحة تلقائياً. أستخدم التوجيه ng-model، لكنني لا أفهم ما يحدث تحت الغطاء.
هذا هو الكود الخاص بي:
```javascript
// app.js
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.name = 'John Doe';
});
```
```html
```
كل شيء يعمل، لكنني لا أفهم:
1. كيف يعرف AngularJS أن القيمة في حقل الإدخال قد تغيرت؟
2. لماذا يؤدي تغيير المتغير $scope.name في الكود (مثلاً عبر setTimeout) أيضاً إلى تحديث حقل الإدخال؟
3. ما هو "التحقق القذر" (dirty checking) ولماذا هو مطلوب؟
4. هل هنا
مرحباً، {{ name }}!