我有一个角度材质列表,我想根据外部提供的模板来渲染项目。然而,这似乎影响了mat-list-item
组件呈现内容,特别是matLine
孩子们。
按如下方式显式定义项目渲染可以按预期工作:
<mat-list>
<mat-list-item *ngFor="let item of items">
<h4 matLine [title]="item.name">{{item.name}}</h4>
<p matLine class="item-id">{{item.id}}</p>
</mat-list-item>
</mat-list>
但是,当使用模板(提供为@ContentChild
)渲染的列表最终看起来有所不同:
<mat-list>
<mat-list-item *ngFor="let item of items">
<ng-template [ngTemplateOutlet]="template" [ngTemplateOutletContext]="{$implicit: item}"></ng-template>
</mat-list-item>
</mat-list>
传入的模板:
<ng-template let-item>
<h4 matLine [title]="item.name">{{item.name}}</h4>
<p matLine class="item-id">{{item.id}}</p>
</ng-template>
一个示例的区别是前一个示例最终换行matLine
变成一个div.mat-list-text
元素,而后者则没有。
为什么这两个示例的行为不同,我该如何对齐它们?
Update
看起来问题在于mat-list-item https://github.com/angular/material2/blob/master/src/lib/list/list-item.html#L10包括提供儿童选择性使用<ng-content select="...">
。
判断从错误报告 https://github.com/angular/angular/issues/14842,这似乎不适用于目前通过模板提供的子内容。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)