#html #angular #typescript
#HTML #angular #typescript
Вопрос:
Невозможно получить функциональность нажатия кнопки, которая отображается в адаптивном коде таблицы ngPrime следующим образом: — HTML-код
<p-table #myTable [columns]="cols"
[value]="results"
[responsive]="true" >
<ng-template pTemplate="header" let-columns>
<tr>
<th *ngFor="let col of columns">
{{col.header}}
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowData let-columns="columns">
<tr>
<td *ngFor="let col of columns">
<span class="ui-column-title">{{col.header}}</span>
<div>
{{rowData[col.field]}}
</div>
<div *ngIf="col.header === 'Click Me' ">
<button
pButton
type="button"
(click)="showPopup(result.id)"
label="Send"
class="ui-button-info"
></button>
</div>
</td>
</tr>
</ng-template>
</p-table>
TS-код
cols: any[];
initColumns() {
this.cols = [
{field: 'id', header: 'Serial No'},
{field: 'name', header: 'Name'},
{field: 'status', header: 'Status'},
{field: 'showPopup', header: 'Click Me'},
];
}
Метод initColumns я вызываю в конструкторе.Нужная мне таблица является адаптивной, поэтому я использовал cols. Все значения являются динамическими, исходя из результатов. Только не удалось получить функциональность щелчка кнопки Click Me. Не удается прочитать свойство ‘id’ undefined. Приветствуется любая помощь.
Комментарии:
1.
result
не определено в соответствии с сообщением об ошибке. Что такоеresult
? Возможно, вы имеете в видуrowData.id
2. ваше событие щелчка, если оно срабатывает нормально, проблема в том, что результат не определен, дважды проверьте, не пропустили ли вы что-то
3. @MoxxiManagarm результаты — это массив, когда я получаю данные из серверной службы, я отправляю ответ в этот массив результатов.
4. @Elmehdi Нет, если результат не определен, то как отображаются другие данные td.
5. @Steve Остальные данные отображаются
results
в значении p-таблицы (обратите внимание на s в результатах). В шаблоне каждая записьresults
массиваrowData
.result
(без s) не является ни тем, ни другим.