Angular внедрение зависимостей navtree
В Angular есть ли способ получить экземпляр компонента (InsideParentComponent
упомянуто в примере ниже), используя внедрение зависимостей?
Обзор приложения :
Содержит три компонента -
ParentComponent
: хост-компонент содержит ng-content
, обернутый сторонним компонентом InsideParentComponent
.
InsideParentComponent
: Считайте, что это сторонний компонент, определение которого нельзя изменить. Этот компонент также содержит ng-content
.
ChildComponent
: он был передан между ParentComponent
как проецируемое содержимое и перераспределил проецируемое содержимое в InsideParentContent
.
Постановка задачи
Чтобы получить экземпляр InsideParentContent
в ChildComponent
только путем внедрения зависимостей
AppComponent (HTML)
<app-parent>
<app-child></app-child>
</app-parent>
ParentComponent (HTML)
<app-inside-parent>
<ng-content></ng-content>
</app-inside-parent>
InsideParentComonent (HTML) (из сторонней библиотеки)
<ng-content></ng-content>
ChildComponent (TS)
export class ChildComponent {
public config: String;
name = "Child Component";
constructor(
@Optional() @SkipSelf() private _app: AppComponent,
@Optional() @SkipSelf() private _parent: ParentComponent,
@Optional() @SkipSelf() private _insideParent: InsideParentComponent,
) {
console.log("App Ref: ", this._app);
console.log("Parent Ref: ", this._parent);
console.log("InsideParent Ref: ", this._insideParent); // Prints null
}
}
Ссылки