@Host
デコレータが view-components から切り離されてどのように機能するかを理解しようとしています。そこで、次のインジェクター ツリーを作成しました。
class Dependency {
}
@Injectable()
class NeedsDependency {
constructor(@Host() public dependency: Dependency) {
console.log(this.dependency); // outputs 'A', but I expected the error
}
}
const parent = ReflectiveInjector.resolveAndCreate([{provide: Dependency, useValue: 'A'}]);
const child = parent.resolveAndCreateChild([]);
const grandchild = child.resolveAndCreateChild([NeedsDependency]);
grandchild.get(NeedsDependency);
私が理解しているように、grandchild
インジェクターのホストはchild
であり、インジェクターには何もDependency
提供されていないため、エラーが発生することが予想されましたchild
。ただし、このコードを実行すると'A'
、ルート インジェクターからインジェクトされます。なんで?