Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2动画完成()_Angular - Fatal编程技术网

Angular 角度2动画完成()

Angular 角度2动画完成(),angular,Angular,我一直在玩Angular 2动画,并使用animationDone($event)方法更改变量值并运行另一个动画。这就是我所做的: HTML: 欢迎来到新世界 {{go}} 我的TS: 动画:[ 触发器('flyInOut'[ 状态('in',样式({transform:'translateX(0)})), 转换('void=>*'[ 设置动画(1500,关键帧)([ 样式({opacity:0,transform:'translateX(-100%)',偏移量:0}), 样式({opaci

我一直在玩Angular 2动画,并使用
animationDone($event)
方法更改变量值并运行另一个动画。这就是我所做的:

HTML:


欢迎来到新世界
{{go}}
我的TS:

动画:[
触发器('flyInOut'[
状态('in',样式({transform:'translateX(0)})),
转换('void=>*'[
设置动画(1500,关键帧)([
样式({opacity:0,transform:'translateX(-100%)',偏移量:0}),
样式({opacity:0,transform:'translateX(-30px)',偏移量:0.3}),
样式({opacity:1,transform:'translateX(0)”,偏移量:1.0})
]))
]),
转换('*=>void'[
设置动画(300,关键帧)([
样式({opacity:0,transform:'translateX(100%)',偏移量:0}),
样式({opacity:0,transform:'translateX(-15px)',偏移量:0.3}),
样式({opacity:1,transform:'translateX(0)”,偏移量:1.0})
]))
])
])
]
})
导出类AppComponent{
title='appworks!';
私人围棋=假;
动画开始($event)
{
}
动画完成($event){
this.go=true;
console.log(“执行GO”);
}
}
动画完成后,
go
变量从
false
变为
true
,尽管我的模板
{{go}}
显示false输出


这是Angular的错误还是我试图做的事情的错误?

你能尝试添加
构造函数(this.cdRef:ChangeDetectorRef){}
然后在
this.go=true之后调用
this.cdRef.detectChanges()
?像魔术一样工作。似乎在
animationDone($event)
方法之后没有应用
detectChanges()
。很高兴听到这个消息。我不知道这是一个bug还是出于设计,但我猜这是一个bug。这部动画似乎在安格拉斯区域之外运行。当事件处理程序所做的工作不仅仅是更改本地属性时,最好使用
zone.run(()=>{…})
而不是
detectChanges()
对我来说似乎是一个bug……这是由于动画回调在angular的区域之外运行的bug造成的,这里已经报告过了