Я не могу вызвать метод из области видимости - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть столбец, в котором есть кнопка, которая вызывает метод при нажатии на него.Так что щелчок дает мне объект rows, и я извлекаю свойство, которое мне нужно для вызова другого метода.Я не могу вызвать 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>

Эта кнопкаClickDetails и 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');
}

1 Ответ

0 голосов
/ 01 февраля 2019

Убедитесь, что вы применили все инструкции, данные в документации.В своем примере они показывают вам, что вам нужно самостоятельно связать контекст следующим образом:

@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');
    }
}

Документы, откуда я его получил: Настройка столбцов команд Я думаю, что это действительно странно, что они не предоставили «нормальный» метод углового вывода, например: (click)="buttonClickDetails($event)".Для этого не понадобилась бы дополнительная инструкция связывания, но я полагаю, что это именно то, что есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...