При наличии корневого компонента без свойств этот шаблон корневого компонента выдаст ошибку:
<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);
}
}