テンプレートのローカル変数にアクセスできる動的なテンプレート文字列を持つコンポーネントを作成しようとしています。私が試したすべてのアプローチは、 "動的テンプレート文字列" $compile
'(角度1の用語ではありません。ダイナミックテンプレートを使用してコンポーネントを作成する方法は? (コンポーネントはインラインテンプレートで転写されます)
以下は、下のコンポーネントのコードです。コメントが表示されたらitem
を参照できるテンプレート文字列をngFor
に挿入したいと思います。
@Component({
selector: 'ion-alpha-scroll',
template: `
<ion-scroll [ngStyle]="calculateScrollHeight()" scrollX="false" scrollY="true">
<ion-list class="ion-alpha-list-outer">
<div *ngFor="let items of sortedItems | mapToIterable;">
<ion-item-divider id="scroll-letter-{{items.key}}">{{items.key}}</ion-item-divider>
<ion-item *ngFor="let item of items.value">
<!-- how can I pass a dynamic template here that can reference item ? -->
</ion-item>
</div>
</ion-list>
</ion-scroll>
<ul class="ion-alpha-sidebar" [ngStyle]="calculateDimensionsForSidebar()">
<li (click)="alphaScrollGoToList(letter)" *ngFor="let letter of alphabet">
<div class="letter">{{letter}}</div>
</li>
</ul>
`,
pipes: [MapToIterable]
})
export class IonAlphaScroll {
@Input() listData: any;
@Input() key: string;
@Input() template: string;
....
}
理想的には私はngFor
でitem
ion-alpha-scroll
参照のトランスクルードコンテンツを持っていると思います。私は、コンポーネントの必要ngFor
でng-content
を使用してみましたし、運がなかった - 私はこのようなものだった試みた
<ion-alpha-scroll *ngIf="breeds" [listData]="breeds" key="$t">
{{item.$t}}
</ion-alpha-scroll>
一つのこと -
<ion-alpha-scroll *ngIf="breeds" [listData]="breeds" key="$t" [template]="alphaScrollTemplate">
</ion-alpha-scroll>
alphaScrollTemplate
が{{item.$t}}
を含む単なる文字列です。私は、コメントが質問をしているコンポーネントでそれを参照しようとしましたが、それは動作しません -
...
<ion-item *ngFor="let item of items.value">
{{template}}
<!-- this just outputs {{item.$t}} literally -->
</ion-item>
...
これはまださえ可能な角度2である場合、私は本当に興味があります。私はちょうどthis question which is very similar to mineを見つけました。どんな助けや提案も大変ありがとうございます。ここ
はhttp://stackoverflow.com/questions/36008476/how-to-realize-website-with-hundreds-of-pages-in-angular2 –
@GünterZöchbauer感謝を参照してください。私はここでこのアプローチを使って方法を考え出しました - http://blog.lacolaco.net/post/dynamic-component-creation-in-angular-2/私が解決策を使って私の質問に答えを加えます終了しました。 – Ross