2012-07-18 43 views

回答

26

如果您尝试对元素的移除进行动画处理,则需要在删除元素之前执行此操作。

我创建了一个fiddle来演示这一点。

在第一部分中,您将听到$destroy事件,该事件对从DOM中删除的元素进行角度调用。

在第二种情况下,我创建了一个指令fadeOut并自动删除元素。

在第三种情况下,指令只是fadeOut元素,并将删除传递给控制器​​。

如果你想淡出被删除的元素,那么你不能使用第一个选项。

第二个和第三个之间我个人建议第三个,因为它更灵活。

+1

谢谢!这工作正常,除了IE8(未在9测试) – 2012-07-18 21:58:14

+0

与IE8的威胁是什么?如果应用程序甚至没有渲染中继器,可能是因为我没有在示例 – 2012-07-18 22:27:52

+0

上添加“class ='ng-app'”。答案的问题是依赖于绑定到元素的click for remove函数。我认为该指令在不干扰控制器/ UI逻辑的情况下工作,当元素实际上从列表变量中移除时,应该直接触发fadeOut。我试图将淡入淡出的代码放入$ destroy事件中,但是因为在数组列表中的splice动作之后立即删除元素,所以淡入淡出的动画没有时间继续。上述解决方案有何改进? – 2013-01-23 04:14:07