Javascript 有没有一种简单的方法可以让两个人用有角度的材料来实现选择,选项是学期、季度和月份?

Javascript 有没有一种简单的方法可以让两个人用有角度的材料来实现选择,选项是学期、季度和月份?,javascript,angular,angular-material,html-select,angular-reactive-forms,Javascript,Angular,Angular Material,Html Select,Angular Reactive Forms,我正在尝试用角材质选择构建一个特殊的日期选择,其中mat选项如下:第一和第二学期、第一、第二、第三、第四季度和12个月。我希望它能工作,如果我选择第二学期,那么第三和第四季度会自动选择,从7月到12月(也是第二学期的月份)。如果我取消选择十月,那么mat select会自动取消选择第二学期和第三季度,但不是第四季度。我希望,我能正确地解释这项任务,首先对我来说,这似乎是一项相当简单的任务,但由于很多天,我无法实现一个解决方案。任何人都可以帮助我,无论做什么,如何解决这个问题,我想将这些日期范围相

我正在尝试用角材质选择构建一个特殊的日期选择,其中mat选项如下:第一和第二学期、第一、第二、第三、第四季度和12个月。我希望它能工作,如果我选择第二学期,那么第三和第四季度会自动选择,从7月到12月(也是第二学期的月份)。如果我取消选择十月,那么mat select会自动取消选择第二学期和第三季度,但不是第四季度。我希望,我能正确地解释这项任务,首先对我来说,这似乎是一项相当简单的任务,但由于很多天,我无法实现一个解决方案。任何人都可以帮助我,无论做什么,如何解决这个问题,我想将这些日期范围相互绑定? 以下是我尝试的一些代码,以及我想要得到的图片

<mat-select multiple>
    <mat-option *ngFor="let semester of dateYear.semesters"
                (onSelectionChange)="selectDateInterval(dateYear.year, semester, $event)">
        {{semester.text}}</mat-option>
    <hr>
    <mat-option *ngFor="let quarter of dateYear.quarters"
                (onSelectionChange)="selectDateInterval(dateYear.year, quarter, $event)">{{quarter.text}}</mat-option>
    <hr>
    <mat-option *ngFor="let month of dateYear.months"
                (onSelectionChange)="selectDateInterval(dateYear.year, month, $event)">{{month.text}}</mat-option>
</mat-select>

{{semerm.text}

{{quarter.text}
{{month.text}

(对于结果,我希望获得数组中选定的月份索引:第一个pic:[1,2,3,4,5,6],第二个pic:[1,2,4,5,6](或开始使用零进行索引))

不幸的是,没有属性,我可以在其中设置是否选择了mat选项(例如:)


我感谢任何可能的解决方案,即使是反应形式的方法或不是基于角度材料的解决方案。谢谢

我建议一个包括反应式表单的解决方案:将
表单控件
连接到您的
mat select
。然后听下面这样的变化:

formControl.valueChanges.subscribe({next: (value) => { your logic here }});

您还需要跟踪选择中发生的更改,以便可以相应地采取行动。因此,我建议使用:rxjs
pairwise
操作符:

我建议一种包括反应式表单的解决方案:将
表单控件
连接到
mat select
。然后听下面这样的变化:

formControl.valueChanges.subscribe({next: (value) => { your logic here }});

您还需要跟踪选择中发生的更改,以便可以相应地采取行动。因此,我建议使用:rxjs
pairwise
操作符:

如果你在stackblitz上构建一个可复制的场景,我相信这会很容易帮助你。如果你在stackblitz上构建一个可复制的场景,我相信这会很容易帮助你。