角按按钮不起作用,如何更新视图

时间:2020-07-19 20:22:34

标签: typescript angular8 angular10

通过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')
}

Checkbox picture

我们可以通过KendoSelectedKeys访问密钥,但是暂时不使用它们的API。

资源:

Angular 2 - View not updating after model changes

0 个答案:

没有答案