import {
Directive,
ViewContainerRef, TemplateRef,
Input, SimpleChanges
} from '@angular/core';
@Directive({
selector: '[fooBar]'
})
export class FooBarBaz {
@Input()
fooBar: number;
@Input()
fooBarBaz: number;
constructor(
private container: ViewContainerRef,
private template: TemplateRef<any>
) {}
ngOnChanges(changes: SimpleChanges) {
this.container.createEmbeddedView(
this.template,
{ $implicit: this.fooBar + this.fooBarBaz }
);
}
}
<ng-template [fooBar]="1" [fooBarBaz]="2" let-n>
<div>{{ n }}</div>
</ng-template>
<div *fooBar="5; baz: 3; let n">
{{ n }}
</div>