通过Angular单击复选框元素不起作用。但是,它可以在Chrome Javascript控制台中正常运行。
有什么原因吗?它试图访问Kendo网格复选框,也许是因为其父组件中的一个子组件(COTS Kendo Grid)?
使用CDR和NgZone。
父组件:
public pressButton(){
this.zone.run(() => {
console.log('button-press')
document.getElementById('document-abcd').click();
this.cdr.markForCheck(); //tried variations of these
this.cdr.detectChanges();
})
}
父组件HTML:
<kendo-grid
[sortable]="true"
[resizable]="true"
[pageable]="true"
[reorderable]="true"
[filterable]="filterable"
>
<kendo-grid-checkbox-column
showSelectAll="true"
[resizable]="false"
>
<ng-template kendoGridCellTemplate let-dataItem let-idx="rowIndex" let-column >
<input class="k-checkbox" [kendoGridSelectionCheckbox]="idx" [id]="'document-'+ dataItem?.documentNumber">
</ng-template>
</kendo-grid-checkbox-column>
这样做表明它存在,因此它可能仍未检测到更改。
if (document.getElementById('document-abcd')) {
console.log('exists')
}
我们可以通过KendoSelectedKeys访问密钥,但是暂时不使用它们的API。
资源: