从Angular 4的html中删除主机组件标签
我有一个要在其中显示表行的表,它是一个组件。我也想将数据传递给该组件:
<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-
componentHTML(整个表格行)都显示在第一列中。
以上结果:
<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 4.3.4。
任何帮助,将不胜感激..!
回答:
您还需要在下面的选择器中加入tr,
@Component({ selector: 'tr[my-component]',
template: `
<td>{{data1.prop1}}</td>
<td>{{data1.prop2}}</td>
<td>{{data2.prop1}}</td>
`
})
export class MyComponent {
@Input() data1;
@Input() data2;
}
希望这可以帮助!!
以上是 从Angular 4的html中删除主机组件标签 的全部内容, 来源链接: utcz.com/qa/412087.html