typescript - تفاوت استفاده از انتساب مستقیم معمولی یک ویژگی با استفاده از getter برای تنظیم مقدار یک ویژگی در Angular چیست؟


برای مثال، تفاوت بین این چیست:

get name() { return this.formGroup.get('name') }

و این:

public name = this.formGroup.get('name')

متشکرم.

پاسخ شماره ۱

وقتی از انتساب مستقیم استفاده میکنید، در اصل مقدار را اختصاص میدهید و همین. هیچ ارجاعی به مقدار اصلی وجود ندارد. این بدان معناست که وقتی مقدار formGroup بهروزرسانی میشود، مقدار name همان مقداری را که هنگام اختصاص اولیه به دست آورده بود، حفظ خواهد کرد (مگر اینکه دوباره آن را اختصاص دهید).

وقتی از یک getter استفاده میکنید، مقدار همیشه همان چیزی خواهد بود که داخل getter بازگردانده میشود. این بدان معناست که هر بار که این متد فراخوانی شود، مقدار واقعی از کنترل فرم بازگردانده خواهد شد. بنابراین برای مثال، اگر میخواهید مقدار کنترل فرم را در HTML نمایش دهید، باید از getter استفاده کنید زیرا تشخیص تغییر باعث میشود مقدار واقعی نمایش داده شود.