Angular 5を更新する
ngOutletContext
に名前が変更されました ngTemplateOutletContext
https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29も参照してください。
元の
テンプレート(<template>
、または<ng-template>
4.x以降)は埋め込みビューとして追加され、コンテキストが渡されます。
でlet-col
コンテキストプロパティ$implicit
として利用できるようになりcol
バインディングのためのテンプレート内。でlet-foo="bar"
コンテキストプロパティbar
として利用できるようになりますfoo
。
たとえば、テンプレートを追加した場合
<ng-template #myTemplate let-col let-foo="bar">
<div>{{col}}</div>
<div>{{foo}}</div>
</ng-template>
<!-- render above template with a custom context -->
<ng-template [ngTemplateOutlet]="myTemplate"
[ngTemplateOutletContext]="{
$implicit: 'some col value',
bar: 'some bar value'
}"
></ng-template>
この回答とViewContainerRef#createEmbeddedViewもご覧ください。
*ngFor
この方法でも機能します。正規構文はこれをより明白にします
<ng-template ngFor let-item [ngForOf]="items" let-i="index" let-odd="odd">
<div>{{item}}</div>
</ng-template>
ここでのNgFor
それぞれに対するDOMに埋め込みビューとしてテンプレートを追加item
するitems
と、いくつかの値(加算item
、index
、odd
コンテキストに)。
$ implictを使用して複数のパラメーターを渡すも参照してください