Angular2 Material grid list componentを使用しており、別のコンポーネントにlist
とitem
を分割したいとします。ここでAngular Materialグリッドリストコンポーネントの `list`と` item`を別々のコンポーネントに分割しましたか?
は私のlist
です:
@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 { }
問題は子供item
コンポーネントはラッパー<app-item>
カスタム(無効)内の実際のDOMにレンダリングされることを示します。ここでは
@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
}
は私item
コンポーネントです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>
私はng-content
、DynamicComponentLoader
見てきました、ViewContainerRef
:そしてAngular2素材grid list componentは、以下の構造を期待するのでスタイルが壊れている:
<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>
を...しかし、実際のDOM構造でありますしかし、私が見る限り、彼らはこれに対する解決策を提供していないようです。
私はresponse hereを読んでいますが、属性セレクタは私にとってもうまくいきません。ラッピングコンポーネントが<app-item>
または<div>
または<span>
であるかどうかは関係ありません。スタイリングは常に破損します。
親ラッパーなしで子コンポーネントをレンダリングできるかどうかは誰にも分かりますか?私のユースケースのために提案できる回避策がありますか?
pingに感謝します。今私達は知っている... –
ありがとう。私は全く同じ問題に遭遇しました。説明は理にかなっています。 –