Host
A parameter decorator on a view-provider parameter of a class constructor that tells the DI framework to resolve the view by checking injectors of child elements, and stop when reaching the host element of the current component.
Description
For an extended example, see "Dependency Injection Guide".
Usage notes
The following shows use with the @Optional
decorator, and allows for a null result.
- class OtherService {}
- class HostService {}
-
- @Directive({selector: 'child-directive'})
- class ChildDirective {
- logs: string[] = [];
-
- constructor(@Optional() @Host() os: OtherService, @Optional() @Host() hs: HostService) {
- // os is null: true
- this.logs.push(`os is null: ${os === null}`);
- // hs is an instance of HostService: true
- this.logs.push(`hs is an instance of HostService: ${hs instanceof HostService}`);
- }
- }
-
- @Component({
- selector: 'parent-cmp',
- viewProviders: [HostService],
- template: '<child-directive></child-directive>',
- })
- class ParentCmp {
- }
-
- @Component({
- selector: 'app',
- viewProviders: [OtherService],
- template: '<parent-cmp></parent-cmp>',
- })
- class App {
- }