我是一个Angular初学者,并且有一个项目,可以使用从web api返回的组件名称,基于某些规则在页面上动态添加组件。基本上,用户可以单击按钮添加新组件A,B,C,D等。然后,我必须检查他们是否可以基于先前添加的组件添加该组件,然后添加组件。由于组件是未知的,我们在DB中定义了名称,但是我在Angular 2中看到了很多不同的,有些令人困惑的方法。
我在网上看过几个例子和plunkr,用于使用 ComponentFactoryResolver 动态地将组件添加到角度页面,但是它需要在父类中预定义子组件,但在我的情况下我不能去做。大多数示例都需要对子组件名称进行硬编码。有什么方法可以引用以前动态添加的组件,还可以在Angular 2中通过api接收的名称添加新组件?我不确定这是否真实。
答案 0 :(得分:0)
只要您引用创建它的ViewContainerRef
,就可以实际知道以前创建的组件是什么。您还可以创建一个服务,该服务将存储所创建组件的名称,并将您的逻辑基于该引用,因此该部分没什么大不了的。
class
属性。如果你不这样做,Angular就会放弃它们,也不会意识到它们确实存在。
所以,简短回答:
如果您在第一点需要帮助,请尝试设置一个快速示例,我可以提供帮助。