我在每一行数据上都有一个下拉列表:
<ng-container matColumnDef="status_change">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Change Status</th>
<td mat-header *matCellDef="let row">
<mat-form-field>
<form [formGroup]="sitStatus">
<mat-select (click)="updateUnitSituationStatus()" formControlName="sitStatusControl" placeholder="Change Status To">
<!-- <mat-option [value]="row.unit_sprotection_status">{{row.unit_sprotection_status}}</mat-option> -->
<mat-option *ngIf="row.unit_sprotection_status!='Active'" value="Active">Active</mat-option>
<mat-option *ngIf="row.unit_sprotection_status!='Inactive'" value="Inactive">Inactive</mat-option>
</mat-select>
</form>
</mat-form-field>
</td>
</ng-container>
我添加了一个事件来获取更改后的下拉列表的值。换句话说,如果我更改了ID为4的放置列表的值,则需要更改该值和该行的ID,以便可以更新数据库。
我使用了(click)
事件,但出现了错误:
错误TypeError:无法读取未定义的属性“值” 在UnitEditComponent.push
这是方法:
updateUnitSituationStatus(){
console.log(this.formGroup.controls['sitStatusControl'].value);
}
我尝试使用(change)
事件,但也没有任何反应。
答案 0 :(得分:1)
由于您在sitStatus
上使用<form [formGroup]="sitStatus">
表单组,因此您也应该在该组中查找控件
this.sitStatus.controls['sitStatusControl'].value
答案 1 :(得分:1)
我尚未在Material UI上尝试过,但我认为它的作用与普通的select
<select (change)="onChangeEvent($event)">
<option value="option1">My Options</option>
</select>
然后在您的.ts
onChangeEvent(ev) {
console.log(ev.target.value); // should print option1
}