mdu*_*uve 2 local-variables ngfor angular angular5
我可以在表格中获取复选框以在选中/取消选中时发出更改,但是在单击地图图钉以切换复选框状态时遇到问题。
这是我的表:
<mat-table [dataSource]="dataSource">
<ng-container matColumnDef="number">
<mat-header-cell *matHeaderCellDef> Number </mat-header-cell>
<mat-cell *matCellDef="let stock">
// #myCheckbox needs to be unique
<mat-checkbox #myCheckbox [checked] (change)="selectStock(stock, $event)"></mat-checkbox> <a href="">{{ stock.number }}</a>
</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;" (click)="clickRow(row._id,$event)"></mat-row>
</mat-table>
Run Code Online (Sandbox Code Playgroud)
然后从我的地图上,当你点击一个大头针时,运行一些功能
(click)="someFunction(myCheckbox)"
Run Code Online (Sandbox Code Playgroud)
在我的班级
@ViewChild('myCheckbox') private myCheckbox: MatCheckbox;
someFunction(myCheckbox){
if (stock.isChecked) {
this.myCheckbox.checked = false;
} else {
this.myCheckbox.checked = true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在处理的示例,但它对每个复选框应用了相同的 #id,因此只有第一个复选框被切换(我假设每个复选框都需要唯一的唯一 ID?)
在网站上进行更多搜索后,我能够使用 ViewChildren 解决该问题
@ViewChildren('myCheckbox') private myCheckboxes : QueryList<any>;
someFunction(item, index){
let myCheckboxes = this.myCheckboxes.toArray();
if (item.isChecked) {
myCheckboxes[index].checked = true;
} else {
myCheckboxes[index].checked = false;
}
}
Run Code Online (Sandbox Code Playgroud)好东西
| 归档时间: |
|
| 查看次数: |
13533 次 |
| 最近记录: |