加载

时间:2017-07-11 07:42:51

标签: angular angular-animations

我有一个动态创建的警报组件。当显示和隐藏警报时,我想要淡入/淡出动画。在创建警报时,似乎动画不会触发,但是当警报关闭时,动画会触发。

经过进一步调查后,我意识到警报没有消失是由于动态触发器绑定的属性在ngOnInit()函数中被更改的事实,因为在视图在DOM中之前触发了export class OverlayMessageComponent implements OnInit { ... ngOnInit() { if(this.autoShow) { this.show(); } } ... } 函数动画在组件出现在屏幕之前发生。

ngAfterViewInit()

我知道我可以更改* => true函数中的属性,但这可能会导致“表达式在检查后发生更改”异常突出显示为here

我尝试使用void => truengOnInit()添加动画触发器,但这并没有解决问题。我不知道是否有办法触发这个动画,并以某种方式仍在使用[after how many number of days to be disabled i.e. 6 in this case] * 24 * 60 * 60 * 1000

代码示例: https://plnkr.co/edit/8NvfhDvLVBd71I7DR0kW

1 个答案:

答案 0 :(得分:0)

我在角度4.2.4中遇到了同样的问题。即使使用ngAfterViewInit(),我也无法触发动画。我最终添加了1ms的延迟和一个可观察的,并且有效。

ngOnInit(){
    Observable.of(true).delay(1)
    .subscribe(() => { this.show() } )
}