У меня есть таблица, в которой я хочу отобразить строку таблицы, которая является компонентом. А также я хочу передать данные этому компоненту:
<table>
<th>
<td>col 1</td>
<td>col 2</td>
<td>col 3</td>
</th>
<tr>
<my-component [data1]="data1" [data2]="data2"></my-component>
</tr>
<tr *ngFor="let item of list">
{{item}}
</tr>
</table>
В my-component
HTML - это несколько <td></td>
с данными, отображаемыми из data1
и data2
.
Но после его рендеринга из-за <my-component></my-component>
мой CSS ломается, в результате весь my-component
HTML (вся строка таблицы) отображается в 1-м столбце.
Результат выше:
<table>
<th>
<td>col 1</td>
<td>col 2</td>
<td>col 3</td>
</th>
<tr>
<my-component>
<td>data1.prop1</td>
<td>data1.prop2</td>
</my-component>
</tr>
<tr *ngFor="let item of list">
{{item}}
</tr>
</table>
Я пробовал следующее:
@Component({
selector: '[my-component]',
templateUrl: 'my-component.html'
})
<tr my-component [data1]="data1" [data2]="data2"></tr>
Но это приводит к ошибке Can't bind to 'data1' since it isn't a known property of 'tr'
.
Также я не могу использовать @Directive
, так как хочу отображать HTML.
Как я могу визуализировать шаблон <my-component></my-component>
без тега <my-component></my-component>
?
Другие ответы относятся к предыдущим версиям angular. Я использую Angular 4.3.4.
Любая помощь будет оценена ..!