繁体   English   中英

NgModel没有反映从下拉列表中选择的值,该下拉列表的值基于另一个下拉列表进行填充

[英]NgModel isn't reflecting the selected value from a dropdown whose values get populated based on another dropdown

加载组件时,我希望将mainTaskmainJob反映为下拉菜单中的一个选择, mainTask被反映为预期,但mainJob在UI中未更新。 但是,如果我从taskList手动选择UI中的值, mainJob更新mainJob 看起来mainJob没有得到反映,因为jobList下拉列表是通过选择mainTask触发的。 我该如何更正我的代码?

html文件

<mat-form-field>
              <mat-select [(ngModel)]="mainTask">
                <mat-option *ngFor="let task of taskList"
                            [value]="task"
                            (click)="getJobs()">
                  {{task}}
                </mat-option>
              </mat-select>
            </mat-form-field>

    <mat-form-field>
              <mat-select [(ngModel)]="mainJob">
                <mat-option *ngFor="let job of jobList"
                            [value]="job">
                  {{job}}
                </mat-option>
              </mat-select>
            </mat-form-field>

ts文件

ngOnInit(): void {
    this.taskList = ['task1','task2','task3'];
    this.jobList = ['job1','job2','job3'];
    this.mainTask = 'task2';
    this.mainJob = 'job2';
}
getJobs():void {
    if(mainTask){
       const jobIndex = this.taskList.indexOf(this.mainTask);
       this.jobList.splice(0, jobIndex);
    }
}

是的,仅在调用getjobs()函数时才选择mainJob,

您可以在类似这样的组件中为mainJob分配一个值

mainJob:string = 'job2';

而不是在ngOnIt中。 在这里检查这个punker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM