Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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
Javascript 以编程方式添加/删除具有角度动画的组件_Javascript_Angular - Fatal编程技术网

Javascript 以编程方式添加/删除具有角度动画的组件

Javascript 以编程方式添加/删除具有角度动画的组件,javascript,angular,Javascript,Angular,我对棱角分明是个新手,对于这个问题我真的找不到任何好的、干净的答案 在一个组件中,我有几个按钮和一个列表“li”。 单击按钮时,应创建另一个组件的实例并将其添加到列表中。不同的按钮应添加不同的组件 我已经成功地通过componentFactoryResolver添加了新实例,但是在创建或删除它们时,很难对它们设置动画 Angular团队希望动态添加和删除组件并为其设置动画,正确的方法是什么?您需要的是使用路由器进行导航。 我在这里创建了一个plunker: 单击A时,组件A的实例将被创建并添加到

我对棱角分明是个新手,对于这个问题我真的找不到任何好的、干净的答案

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

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


Angular团队希望动态添加和删除组件并为其设置动画,正确的方法是什么?

您需要的是使用路由器进行导航。 我在这里创建了一个plunker:

单击A时,组件A的实例将被创建并添加到DOM中;单击B时,组件A的实例将消失,组件B的实例将被创建

HostComponent是定义了子路由的组件。请注意,在组件中,实际上根本没有引用任何这些子组件。父子路由关系在app-routing.module.ts中定义

我建议从头到尾花点时间阅读路由器指南,因为这是Angular 2开发的关键方面之一:

祝你好运


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

感谢您详尽的回答!但是我不能完全确定我是否希望路由器处理组件更改,因为浏览器历史记录和将逻辑从组件移动到一个非常普通的位置。动画也不适用于我,这不会将组件添加到列表中,只是在它们之间切换。对不起,如果你知道这个问题的答案,我很乐意让你的答案成为被接受的答案。我很高兴知道为什么这篇文章得到了负票,因为这将帮助我修改这个问题并从中学习。