Tengo un servicio, que de crear una nueva hoja y guárdelo en las hojas de la matriz. Muestro esta cuchilla usando «DynamicComponentLoader».
Ahora quiero eliminar mi hoja, de otra hoja. Pero, ¿cómo puedo hacerlo?

InformationsquelleAutor | 2016-02-15

1 Comentario

  1. 6
    export class YourComponent {
      constructor(private ref:ElementRef) {}
    
      someFunc() {
        elementRef.nativeElement.querySelector('some-elem').destroy();
      }
    }

    También se puede utilizar un elemento contenedor

    <div #wrapper><dynamic-component></dynamic-component>

    a continuación, utilizar

    @ViewChild('wrapper') wrapper;
    ...
    someFunc() {
      while (myNode.firstChild) {
        myNode.removeChild(myNode.firstChild);
      }
    }
    • Gracias, Günter Zöchbauer. Pero esto es eliminar de DOM. Por ejemplo, si tengo ngOnDestroy() en el componente, no realizar. Angular no saben que el componente se ha eliminado.
    • Usted podría utilizar el método descrito en stackoverflow.com/q/34093670/4715679 – es decir: pasar una referencia a la ComponentRef a la creación de componentes y la invocación de la dispose() método.
    • tenga en cuenta que .dispose() es destruir() desde la beta.16
    • Me preguntaba si .remove() es el mismo como display: none o simplemente elimina un elemento representado
    • ninguno y remove() (ahora destroy()) son totalmente diferentes. display: none es CSS sólo y sólo hace que el elemento host invisible y puede ser visible, por ejemplo, la configuración de display: block, mientras que destroy() destruye el componente, elimina el elemento host de la DOM y sólo se puede volver a agregar mediante el uso de ViewContainerRef.createComponent().

Dejar respuesta

Please enter your comment!
Please enter your name here