【发布时间】:2020-03-27 21:27:43
【问题描述】:
我在我的一个角项目组件中使用角材料日期选择器。该组件有两个选项卡。使用 *ng如果我根据用户单击的内容一次只显示一个。在一个选项卡中,用户选择一个日期,如果导航到同一组件的其他选项卡并返回到前一个选项卡,我需要保留所选日期。
这就是我在HTML方面所做的:
<mat-form-field class="dropdownWidth">
<input #dateInput matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker"
placeholder="Choose a date"
[value]="datePickerDate"
[(ngModel)]="datePickerDate"
(dateChange)="addDateEvent($event)"
[disabled]="selectedOperator.length === 0 && userDateRange.length === 0">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
在TS文件中:
addDateEvent(event) {
this.datePickerEvent = event;
this.datePickerDate = new Date(`${event.value['_i'].month + 1}-${event.value['_i'].date}-${event.value['_i'].year}`);
this.formatDate = moment(event.value).format('YYYY-MM-DD');
}
但是当我向后导航时,日期值不会保留。有什么建议我该如何实现这一目标?
这里是示例stackblitz
【问题讨论】:
-
你能创建一个stackblitz 的例子吗?
-
这是因为当您在选项卡之间导航时,组件会再次呈现。如果你想在本地保存这个值,你应该使用 localstorage 来保存/检索值。
-
@StepUp 我已经添加了 stackblitz 链接。在这里您可以看到在选项卡之间导航不会保留日期。
-
@Mridul 始终在同一个组件中,选项卡项及其内容在同一个组件中,因此组件不再呈现,但我也检查了您的解决方案,它没有解决
-
This 回答会有所帮助
标签: javascript angular typescript angular-material