Angular2以编程方式删除组件。
我有一个服务,它创建新刀片并将其保存在刀片阵列中。我使用“DynamicComponentLoader”显示此刀片。 现在我想从另一个刀片上删除我的刀片。但我怎么能做到呢Angular2以编程方式删除组件。,angular,Angular,我有一个服务,它创建新刀片并将其保存在刀片阵列中。我使用“DynamicComponentLoader”显示此刀片。 现在我想从另一个刀片上删除我的刀片。但我怎么能做到呢 导出类组件{ 构造函数(私有ref:ElementRef){} someFunc(){ elementRef.nativeElement.querySelector('some-elem').destroy(); } } 您还可以使用包装器元素 然后使用 @ViewChild(“包装器”)包装器; ... someFun
导出类组件{
构造函数(私有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@Mesedisplay:none
和remove()
(现在是destroy()
)是完全不同的display:none
仅为CSS,仅使宿主元素不可见,并可通过例如设置display:block
使其可见,而destroy()
销毁组件,从DOM中删除宿主元素,并且只能使用ViewContainerRef.createComponent()重新添加
。答案是:可能重复