【问题标题】:List items animation not working when add/remove element in the same time同时添加/删除元素时列表项动画不起作用
【发布时间】:2019-01-27 17:27:55
【问题描述】:

我想显示一个消息列表。 但是如果有很多信息,信息就会溢出屏幕。

所以,我想删除第一个放置它的元素和列表的末尾。 但我想用动画把它去掉,再用动画加进去。

但它并没有像我预期的那样工作。当我只删除元素时,它正在工作。如果我只添加一个元素,它也可以工作。 但是如果我同时做这两个,就没有动画

见:https://stackblitz.com/edit/angular-animation-question

有人能解释一下为什么吗?我想我在第一次尝试动画时误解了一些东西。

【问题讨论】:

    标签: angular angular-animations


    【解决方案1】:

    设法通过以下方式做到这一点:

    hello.component.html

    <div [@listStagger]='items[items.length - 1]'>
    

    hello.component.ts

       var tempMessage = this.messages.shift();
       this.messages.push({ ...tempMessage });
    

    stackblitz.

    希望对您有所帮助。

    【讨论】:

    • 现在您通过最后添加的对象跟踪更改,因此在现实世界的场景中,您将添加新对象(具有不同的引用),因此它可以按原样工作,但这里是为了模仿我使用传播的新对象运算符
    • 感谢您的帮助!所以如果我很好理解,我的 [@listStagger]='items.length' 的问题是尺寸变化太“快”,所以角度动画不能处理变化?所以它没有触发动画?对吧?
    • @GildasCuisinier 我认为是的,因为您在一个异步回合中删除一个项目并添加一个项目,然后运行更改检测,因此对于角度而言,您的数组始终具有相同的长度
    猜你喜欢
    • 2019-10-30
    • 1970-01-01
    • 2010-10-13
    • 2014-12-25
    • 2019-08-19
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多