【发布时间】:2019-02-23 02:10:58
【问题描述】:
给定一个没有属性的根组件,这个根组件模板会报错:
<div>My name is {{foo}}.</div>
我想创建一个组件 (FooProvider) 来投射其内容,但还为“foo”提供绑定,以便我可以在我的根组件中编写:
<foo-provider>
<div>My name is {{foo}}.</div>
</foo-provider>
换句话说:如何将绑定放入
更新:
尝试将此作为结构指令也不起作用。这里有什么问题? (角度 5.2.11)
这是根组件:
<ng-container *foo-provider>
<div>foo = {{foo}}</div>
</ng-container>
这是 FooProviderDirective:
import {Directive, TemplateRef, ViewContainerRef} from '@angular/core';
interface FooContext {
foo: string;
}
@Directive({
selector: '[foo-provider]'
})
export class FooProviderDirective {
constructor(
private readonly viewRef: ViewContainerRef,
private readonly templateRef: TemplateRef<FooContext>
) {
const context: FooContext = { foo: 'baz' };
this.viewRef.createEmbeddedView(this.templateRef, context);
}
}
【问题讨论】:
标签: angular binding angular2-directives projection