我有一个动态创建的警报组件。当显示和隐藏警报时,我想要淡入/淡出动画。在创建警报时,似乎动画不会触发,但是当警报关闭时,动画会触发。
经过进一步调查后,我意识到警报没有消失是由于动态触发器绑定的属性在ngOnInit()
函数中被更改的事实,因为在视图在DOM中之前触发了export class OverlayMessageComponent implements OnInit {
...
ngOnInit() {
if(this.autoShow) {
this.show();
}
}
...
}
函数动画在组件出现在屏幕之前发生。
ngAfterViewInit()
我知道我可以更改* => true
函数中的属性,但这可能会导致“表达式在检查后发生更改”异常突出显示为here。
我尝试使用void => true
和ngOnInit()
添加动画触发器,但这并没有解决问题。我不知道是否有办法触发这个动画,并以某种方式仍在使用[after how many number of days to be disabled i.e. 6 in this case] * 24 * 60 * 60 * 1000
。
答案 0 :(得分:0)
我在角度4.2.4中遇到了同样的问题。即使使用ngAfterViewInit()
,我也无法触发动画。我最终添加了1ms的延迟和一个可观察的,并且有效。
ngOnInit(){
Observable.of(true).delay(1)
.subscribe(() => { this.show() } )
}