update Angular 5
ngOutletContext
更名为ngTemplateOutletContext
另见第CHANGELOG.md @ angular/angular页
original
模板(从4.x开始为<template>
或<ng-template>
)作为嵌入式视图添加,并传递给上下文.
在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>
另请参见this answer和ViewContainerRef#createEmbeddedView.
*ngFor
也是这样.规范语法使这一点更加明显
<ng-template ngFor let-item [ngForOf]="items" let-i="index" let-odd="odd">
<div>{{item}}</div>
</ng-template>
其中,NgFor
将模板作为嵌入视图添加到DOM中,用于items
中的每item
个,并向上下文添加一些值(item
、index
、odd
).
另见Using $implict to pass multiple parameters