«Мой угловой путь», когда у нас есть несколько вариантов реляций, использует ngValue. Разочарование в том, что в «год» у нас есть объект, а не число, но преимущество очевидное .ts
<select [(ngModel)]="year" #val>
<option disabled value="null">Select year</option>
<option *ngFor="let item of options" [ngValue]="item">
{{ item.year }}
</option>
</select>
<select [(ngModel)]="periodo">
<option disabled value="null">Select period</option>
<option *ngFor="let item of year?.period" [value]="item">
{{ item }}
</option>
</select>
{{year?.year}}{{periodo}}
.ts нужны только две переменные year), которые будут объектом, но мы можем получить год by year.year) и periodo
См. stactblitz
export class AppComponent {
options = [
{year: "2015", period: ["P1"]},
{year: "2016", period: ["P1", "P2"]},
{year: "2017", period: ["P1", "P2", "P3"]}
];
year:any=null;
period:any;
}