如题。
正常应该放在ngOnInit(){}中吧,ngOnInit应该是一个安全区域
啊?可现在是无效。
学习的视频教程,这结果与讲师结论相反了
1.如下无效(在ngOnInit中):
`export class GridItemImageDirective implements OnInit {
@Input() appGridItemImage = '4rem';
@Input() fitMode = 'cover';
constructor(private elr: ElementRef, private rd2: Renderer2) {
}
ngOnInit(): void{
this.rd2.setStyle(this.elr.nativeElement, 'grid-area', 'image');
this.rd2.setStyle(this.elr.nativeElement, 'width', this.appGridItemImage);
this.rd2.setStyle(this.elr.nativeElement, 'height', this.appGridItemImage);
this.rd2.setStyle(this.elr.nativeElement, 'object-fit', this.fitMode);
}
}`
这样有效(在Constructor中):
`export class GridItemImageDirective implements OnInit {
@Input() appGridItemImage = '4rem';
@Input() fitMode = 'cover';
constructor(private elr: ElementRef, private rd2: Renderer2) {
this.rd2.setStyle(this.elr.nativeElement, 'grid-area', 'image');
this.rd2.setStyle(this.elr.nativeElement, 'width', this.appGridItemImage);
this.rd2.setStyle(this.elr.nativeElement, 'height', this.appGridItemImage);
this.rd2.setStyle(this.elr.nativeElement, 'object-fit', this.fitMode);
}
//指令在ngOnInit内设置属性,此时外部已经设置完毕
ngOnInit(): void{
}
}`