如何从选择选项中选择数据对象并使用其他下拉菜单

时间:2019-07-29 14:01:37

标签: angular angular-material

我有对象列表,它是下拉列表的来源。选择Select Scenario下拉列表(ScenarioData.name)后,我们需要在Select Env下拉列表中显示启用的:同一对象的ScenarioData的[]。这该怎么做。

在提交表单时,我们需要同时从下拉列表中传递所选名称和所选Env。

export interface ScenarioData {
    id: number;
    item: string;
    name: string;
    enabled: [];
    menu: string;
    menuScenario: string
}

<mat-form-field *ngIf="scenariosObservable | async as scenarios">
    <mat-label>Select Scenario</mat-label>
    <mat-select [(ngModel)]="selectedValue">
      <mat-option *ngFor="let scenario of scenarios" [value]= "scenario">{{scenario.name}}</mat-option>
    </mat-select> 
</mat-form-field>

<mat-form-field>
    <mat-label>Select Environment</mat-label>
    <mat-select [(value)]="envselected">
        <mat-option [value]= "env" *ngFor="let env of selectedValue.enabled">{{env}}</mat-option>
    </mat-select>
</mat-form-field> 

2 个答案:

答案 0 :(得分:0)

只需在第二个表单字段中放置一个myNexoEntities.SaveChanges();。这将确保除非初始化*ngIf="selectedValue",否则第二个下拉菜单不会显示在屏幕上。

在这里,尝试一下:

selectedValue

答案 1 :(得分:0)

使用安全导航操作符(?。)尝试这种方式

<mat-form-field>
    <mat-label>Select Environment</mat-label>
    <mat-select [(value)]="envselected">
        <mat-option [value]= "env" 
            *ngFor="let env of selectedValue?.enabled">
                 {{env}}
         </mat-option>
    </mat-select>
</mat-form-field>