Angular2以编程方式删除组件。

Angular2以编程方式删除组件。,angular,Angular,我有一个服务,它创建新刀片并将其保存在刀片阵列中。我使用“DynamicComponentLoader”显示此刀片。 现在我想从另一个刀片上删除我的刀片。但我怎么能做到呢 导出类组件{ 构造函数(私有ref:ElementRef){} someFunc(){ elementRef.nativeElement.querySelector('some-elem').destroy(); } } 您还可以使用包装器元素 然后使用 @ViewChild(“包装器”)包装器; ... someFun

我有一个服务,它创建新刀片并将其保存在刀片阵列中。我使用“DynamicComponentLoader”显示此刀片。 现在我想从另一个刀片上删除我的刀片。但我怎么能做到呢

导出类组件{
构造函数(私有ref:ElementRef){}
someFunc(){
elementRef.nativeElement.querySelector('some-elem').destroy();
}
}
您还可以使用包装器元素


然后使用

@ViewChild(“包装器”)包装器;
...
someFunc(){
while(myNode.firstChild){
myNode.removeChild(myNode.firstChild);
}
}

谢谢你,甘特·佐克鲍尔。但这是从DOM中删除。例如,若我在组件中有ngondstroy(),它就不会执行。Angular不知道该组件已被删除。@АцццаСаафаМа:您可以使用–中描述的方法,即:将对
ComponentRef
的引用传递给所创建的组件,并对其调用
dispose()
方法。我想知道是否.remove()与“显示”相同:无或仅删除渲染的element@Mese
display:none
remove()
(现在是
destroy()
)是完全不同的
display:none
仅为CSS,仅使宿主元素不可见,并可通过例如设置
display:block
使其可见,而
destroy()
销毁组件,从DOM中删除宿主元素,并且只能使用
ViewContainerRef.createComponent()重新添加
。答案是:可能重复