Kal*_*sev 3 angular-material angular
我正在使用Angular2 Material 网格列表组件,我想拆分list和item单独的组件.
这是我的list:
@Component({
selector: 'app-list',
template: `
<md-grid-list cols="12">
<app-item *ngFor="let item of items"></app-item>
</md-grid-list>
`
})
export class ListComponent {
items: Array<number> = [1, 2]; // dummy data
}
Run Code Online (Sandbox Code Playgroud)
这是我的item组件:
@Component({
selector: 'app-item',
template: `
<md-grid-tile [colspan]="6">
First
</md-grid-tile>
<md-grid-tile [colspan]="6">
Second
</md-grid-tile>
`
})
export class ItemComponent implements OnInit { }
Run Code Online (Sandbox Code Playgroud)
问题是子item组件在包装器<app-item>自定义(无效)DOM元素内的实际DOM中呈现.由于Angular2 Material 网格列表组件需要以下结构,因此样式被破坏:
<md-grid-list cols="12">
<!-- Item 1 -->
<md-grid-tile [colspan]="6"></md-grid-tile>
<md-grid-tile [colspan]="6"></md-grid-tile>
<!-- Item 2 -->
<md-grid-tile [colspan]="6"></md-grid-tile>
<md-grid-tile [colspan]="6"></md-grid-tile>
</md-grid-list>
Run Code Online (Sandbox Code Playgroud)
...但实际的DOM结构是:
<md-grid-list cols="12">
<!-- Item 1 -->
<app-item> <!-- same issue if I replace this with `div` or `span` -->
<md-grid-tile [colspan]="6"></md-grid-tile>
<md-grid-tile [colspan]="6"></md-grid-tile>
</app-item>
<!-- Item 2 -->
<app-item>
<md-grid-tile [colspan]="6"></md-grid-tile>
<md-grid-tile [colspan]="6"></md-grid-tile>
</app-item>
</md-grid-list>
Run Code Online (Sandbox Code Playgroud)
我已经看过了ng-content,DynamicComponentLoader的ViewContainerRef,但他们似乎并不至于我可以看到提供一个解决的办法.
我在这里阅读了响应,但属性选择器对我来说也不起作用.如果包装组件不要紧<app-item>或<div>或<span>或什么的,造型老是打断.
有没有人知道我是否可以在没有任何父包装的情况下渲染子组件?是否有针对我的用例建议的解决方法?
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |