Как скомпилировать угловой код внутри строки? - PullRequest
0 голосов
/ 09 ноября 2019

Я использую трехлистный компонент Kendo. Здесь я создаю кнопку и вызываю функцию на основе события (click). Проблема в том, что для отображения столбцов внутри древовидного списка мне нужно определить столбцы вместе с кнопкой внутри атрибута шаблона. Здесь код шаблона находится в строке, это означает, что угловые свойства также должны быть определены в строке. Теперь угловой компилятор, похоже, не анализирует угловые свойства внутри строки. Вот код:

  // ...

 columns: [
        { field: 'area', title: 'Area', width: 100 },
        {
            field: 'value', width: 200, title: 'Value',
            template: (e) => {

                if (e != null && e != undefined) {
                    data = e;

                    return `<button (click)="OnClickFunction(dataItem)>Button/button>`;
                    }
                }

            }
        },
        { field: 'isIncluded', width: 50, title: 'Included?' }
    ],

Один из способов, который я обнаружил, заключался в том, чтобы явно прикрепить слушатель события к элементу, выполнив что-то вроде этого:

 this.elementRef.nativeElement.querySelector('button').addEventListener('click', this.OnClickFunction.bind(this));

Но проблема в том, что яхотите передать данные строки (dataItem) вместе с методом OnClickFunction(), который невозможно передать через addEventListner. Кроме того, нет другой альтернативы angularjs s $compile. Итак, как мне динамически вызывать угловые свойства при передаче данных через строку?

...