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を使用して複数のパラメーターを渡すも参照してください