Angular 角度:在:左&;上设置嵌套组件的动画:进入美国
我想为元素的DOM插入/删除设置动画,它由我的组件树中较高的父级触发,如下所示:Angular 角度:在:左&;上设置嵌套组件的动画:进入美国,angular,animation,triggers,children,Angular,Animation,Triggers,Children,我想为元素的DOM插入/删除设置动画,它由我的组件树中较高的父级触发,如下所示: 动画元素 (请注意,这些组件不是“被屏蔽的”(使用ng Content时,没有内容投影);它们只是其父级各自模板中的直接子级和唯一子级(最小复制以更好地说明我的问题:)) 按原样,只有:enter转换被设置动画,因为组件-A的子树在条件不满足时会立即消失,从而阻止:leave动画播放 现在,缔约国声明: 每次以角度触发动画时,父动画具有优先级,所有子动画都被阻止 因此,我需要使用animateChild函数将动
动画元素
(请注意,这些组件不是“被屏蔽的”(使用ng Content
时,没有内容投影);它们只是其父级各自模板中的直接子级和唯一子级(最小复制以更好地说明我的问题:))
按原样,只有:enter
转换被设置动画,因为组件-A
的子树在条件
不满足时会立即消失,从而阻止:leave
动画播放
现在,缔约国声明:
每次以角度触发动画时,父动画具有优先级,所有子动画都被阻止
因此,我需要使用animateChild
函数将动画“滴流”到component-C
:
触发器(“级联”[
转换(“:enter,:leave”,[query(@*”,animateChild())])
])
组件B
模板:
将此触发器添加到component-B
(将触发器应用于其模板中的component-C
元素)将产生我的预期结果::输入和:为component-C
的div保留动画播放
问题是,在我的例子中,component-A
还为其模板元素注册了动画以供使用,并且出于某种原因,重用@cascade
触发器(仅此一个,甚至没有其他动画)跳过component-C
的div动画:这两种状态都调用@fadeInOut
触发器,但是动画一开始就“完成”
再说一次,我可能不是很清楚,但是。
打开控制台查看每个触发器“开始”和“完成”计时和顺序的日志。扰流板:触发事件不会按树的顺序“向上/向下冒泡”
我肯定错过了一些愚蠢的事情,因为想要动画元素的:enter/:leave远离其父元素的[ngFor]
或[ngIf]
谢谢你的意见