-
יש לי מחלקה CLS הכתובה ב-TS שיש בה משתנה תאריך, מסוג Date.
אני רוצה להציג אותו ב-HTML אבל בד בבד לפתוח אותו לעריכה כך:<input type="date" [(ngModel)]="CLS.BirthDate">
הפלט המוצג אינו התאריך אלא רק המבנה שלו:
dd/mm/yyyy
(כאשר יש אופציה לשנות את התאריך ואז הוא יהיה מוצג.)
אומנם ב-html שמרונדר ע"י אנגולר התאריך קיים, אלא שהוא לא מוצג כשורה.<input _ngcontent-spd-c50="" type="date" ng-reflect-model="**Tue Dec 17** 1991 00:00:00 GMT+0" class="ng-pristine ng-valid ng-touched">
כיצד ניתן להציג את התאריך בצורה נורמלית?
תודה רבה. -
תיישם את זה כך:
<input type="date" [ngModel]="CLS.BirthDate | date:'yyyy-MM-dd'" (ngModelChange)="CLS.BirthDate = $event"/>
הפתרון הוא לחלק את הTwo-ways binding לשניים: One-way binding ו Event Binding.
למעשה [(ngModel)] כולל את שניהם, [ ] מייצג One-way binding, ו ( ) מייצג Event binding.
הסיבה שאינך יכול להשתמש עם התחביר המשולב [( )] היא השימוש בDatePipe (אנגולר לא מאפשרת שימוש בPipes בשילוב עם Two-ways binding)ועוד Convention קטן שלא הרבה יודעים:
כל Output בעל שם דומה ל Input קיים, בתוספת המילה Change יכול לשמש עבור Two-ways binding ללא כל הגדרה נוספת. -