首页 > 解决方案 > 如何将组件中的默认值设置为 Mat-select 触发(更改)

问题描述

您好,我正在尝试使用 component.ts 中的多个选项在 mat-select 中设置默认值,并且我正在设法这样做,但是当我以编程方式设置默认值时,当值更改时应该执行的方法,不执行,除非我手动更改值,我正在使用(更改)指令触发器到该方法,还有什么我可以使用的吗?像另一个指令。

我现在正在使用 ngModel 设置默认值,将值设置为 object.attribute

<mat-select [compareWith]="compareBasic" id="object" name="object" 
                    [(ngModel)]="object.attribute" (change)="methodThatIWantToTrigger" class="full-width"
                    required> </mat-select>

我应该在 mat-select 中有多个选项,但是如果只有一个选项,我想默认选择该值,并且我需要知道选择的值以便从数据库中获取一些数据。我正在做这样的事情:

if (this.array.length == 1){ // if it has only one option
        this.object.attribute = this.array[0];
}

但这会导致一些错误或失败。

标签: angular5angular-material2

解决方案


由于您有 2 路数据绑定,[(ngModel)]因此您可以使用(ngModelChange)而不是(change). 它在值更改时触发。这是stackblitz 的例子


推荐阅读