How delete element.nativeElement from DOM?

2020-06-03 05:46发布

问题:

I tried this way:

@ViewChild('draggable') private draggableElement: ElementRef;

this.draggableElement.nativeElement.remove();

HTML:

<div #draggable>Block</div>

回答1:

Your code will also worked, only you have to do that is remove element on OnInit(), If you try to remove elements on constructor then that time view not be ready.

here's is an example

in .html

<div #draggable>Block</div>

and in .ts

export class AppComponent implements OnInit {
  name="Angular";

  @ViewChild('draggable') private draggableElement: ElementRef;

  constructor() { }

  ngOnInit() {
   this.draggableElement.nativeElement.remove();
  }
}

here's is an Stackblitz demo



回答2:

User Renderer2 service to remove element from dom

removeChild() Implement this callback to remove a child node from the host element's DOM.

@ViewChild('draggable')  draggableElement: ElementRef;
   constructor(private renderer2: Renderer2,private el:ElementRef) {}
  ngOnInit() {
    this.renderer2.removeChild(this.el.nativeElement,this.draggableElement.nativeElement);
  }

Example:https://stackblitz.com/edit/angular-renderer2-remove



回答3:

You can use *ngIf right, which will be removed from the DOM when condition fails.

Block