angular5 - 如何将组件中的默认值设置为 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];
}
但这会导致一些错误或失败。
解决方案
由于您有 2 路数据绑定,[(ngModel)]
因此您可以使用(ngModelChange)
而不是(change)
. 它在值更改时触发。这是stackblitz 的例子
推荐阅读
- image-processing - 什么是图像中的通道失真?
- android - 如何在我的 config.yml 文件中访问在上下文中创建的环境变量?
- json - 我无法通过纬度和经度获取媒体 instagram API
- angular - 如何以编程方式更改“html”选择器的 CSS?
- c# - 获取最新上传的记录
- ios - 如果服务器端使用 FCM 发送通知,是否必须在 iOS 客户端应用程序中使用 FCM 来接收远程通知
- ember.js - 每次加载页面时的 Ember 加载变量
- c# - 如何将我的自定义菜单命令添加到 Windows 7 及更高版本中已安装的应用程序
- mysql - 获取MySQL列中至少一个为null的行数据
- java - 无效的列名 Gull