Я использую трехлистный компонент 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
. Итак, как мне динамически вызывать угловые свойства при передаче данных через строку?