Avatar ·

(change) مقابل (ngModelChange) في Angular: ما الفرق وماذا تختار؟

مرحبًا بالجميع! أنا مبتدئ في Angular و TypeScript. أتعامل مع النماذج وإدخال البيانات. صادفت حدثين متشابهين: `(change)` و `(ngModelChange)`. كلاهما يتم تشغيلهما عند تغيير القيمة في ``، لكنهما يتصرفان بشكل مختلف قليلاً. على سبيل المثال، لدي مكون بسيط مع حقل إدخال وربط ثنائي الاتجاه عبر `[(ngModel)]`: ```typescript import { Component } from '@angular/core'; @Component({ selector: 'app-user-input', template: `

القيمة الحالية: {{ userName }}

` }) export class UserInputComponent { userName: string = ''; onChange(): void { console.log('change event:', this.userName); } onModelChange(value: string): void { console.log('ngModelChange event:', value); } } ``` لاحظت أن: 1. `(change)` يتم تشغيله فقط عندما أزيل التركيز من الحقل (blur)، بينما `(ngModelChange)` يتم تشغيله فورًا عند كل