我无法调用超出范围的方法

I am not able to call a method out of scope

我有一列有一个按钮,当它被点击时会调用一个方法。因此,单击为我提供了行对象,然后我拉 属性 我需要调用另一个方法。我无法调用 reloadDialog 它在我的组件中。这是在 DxGrid 的一列中。

<dxi-column type="buttons" caption="Button"
  [width] = 150 alignment="left"
  [allowExporting]="false">
  <dxi-button
      text="Detail"
      [visible]="true"
      [onClick]="buttonClickDetails">
  </dxi-button>
</dxi-column>

这个buttonClickDetails和reloadDiaload在同一个组件里

public buttonClickDetails(e: any) {
  console.log('inside button click details');
  const id = e.row.data.AgreementId;
  console.log('Leaving the buttonClickDetails');
  // I get an error that says reloadDialog is not a funtion.
  this.reloadDialog(id, 'Agreement');
}

确保您已应用文档提供的所有说明。在他们的示例中,他们向您展示了您需要像这样自己绑定上下文:

@Component(...)
export class MyComponent {

    constructor() {
        // binding 'this' will pass it as the context of that function.
        this.buttonClickDetails = this.buttonClickDetails.bind(this);
    }

    public buttonClickDetails(e: any) {
        console.log('inside button click details');
        const id = e.row.data.AgreementId;
        console.log('Leaving the buttonClickDetails');
        this.reloadDialog(id, 'Agreement');
    }
}

我从哪里得到它的文档:Command Column Customization


我认为他们没有提供 'normal' Angular 输出事件方法真的很奇怪:(click)="buttonClickDetails($event)"。那不需要额外的绑定指令,但我想它就是这样。