以下代码片段是自定义指令的一部分:
@Directive({
selector: '[appBasicDirective]'
})
export class BetterHighlightDirective implements OnInit {
@HostBinding('style.backgroundColor') backgroundColor = 'transparent';
constructor(private el: ElementRef, private renderer: Renderer2) { }
ngOnInit(): void {
this.renderer.setStyle(this.el.nativeElement, 'background-color', 'blue');
}
......
由于它们没有显式初始化,那么角如何初始化遮罩下的构造函数参数?如果我把随机参数投进去,就像:
constructor(private el: ElementRef, private renderer: Renderer2,
private foo: ElementRef, private bar: Renderer2) { }
它仍然能在没有任何警告的情况下工作。那么,foo
和bar
的价值是什么?
发布于 2018-12-03 03:46:23
组件构造函数中的参数是依赖注入器。当组件初始化时,它会创建每个类或提供程序的实例,作为构造函数参数(DI)。因此,添加更多的params只会创建更多注入类的实例。在这里,foo
和bar
只不过是ElementRef
和Renderer2
的实例。
https://stackoverflow.com/questions/53592692
复制相似问题