以编程方式在Angular中添加/删除带动画的组件

时间:2017-02-03 22:17:12

标签: javascript angular

我是Angular的新手,对这个问题找不到任何好的和干净的答案。

在一个组件中,我有几个按钮和一个列表('li')。 单击一个按钮时,它应该创建另一个组件的实例并将其添加到列表中。不同的按钮应该添加不同的组件。

我已成功设法通过componentFactoryResolver添加新实例,但是在创建或删除它们时很难设置动画。

动态添加和删除组件并为其设置动画会是什么样的“正确”方式(正如Angular团队所希望的那样)?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是使用Router的导航。 我在这里创建了一个plunker:https://embed.plnkr.co/sukXA2zRV7kEAq4MZDXY/

当您单击A时,会创建组件A的实例并将其添加到DOM中,当您单击B时,A的实例将消失,并且会创建组件B的实例。

HostComponent是定义了子路由的组件。请注意,在组件中,您实际上并未引用其中任何一个" child"组件。父子路由关系在app-routing.module.ts。

中定义

我建议花时间从头到尾阅读路由器指南,因为这是在Angular 2中开发的关键方面之一: https://angular.io/docs/ts/latest/guide/router.html

祝你好运!

编辑为ComponentA和更新的plunker链接添加了路线动画。