wake-up-neo.com

Angular 5 Entfernen Sie bestimmte DOM-Elemente

Ich habe ein kleines Problem, das ich nicht herausfinden kann. Ich lerne gerade Angular/TypeScript und ich kann nicht herausfinden, wie ich einige DOM-Elemente entfernen könnte ... Ich habe einige automatisch generierte Inhalte, die bestimmte CSS-Klassen haben. Leider werden die Objekte woanders generiert und ich kann sie auf keine Weise konfigurieren, so dass ich keine ngIf oder irgendetwas anderes zu diesem Inhalt hinzufügen kann, das würde meine Arbeit vereinfachen ... Ich muss sie nur verwenden. Was ich erreichen möchte, ist ungefähr so ​​(jQuery-Version): 

$("#button").click(function() {
    $('.fc-oss').toggle();
 });

Ich habe einen Toggle, und ich möchte ein Ereignis daran anhängen, das bei Aktivierung alle Elemente mit diesem bestimmten Typ aus der Ansicht ausblendet. Ich versuche dies in eckig ohne jQuery zu erreichen, aber mit wenig Erfolg. Irgendwelche Ideen, wie ich das erreichen könnte?

2
Vlad N

In Angular können Sie direkten Zugriff auf DOCUMENT verwenden.

import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';

@Injectable()
export class MyService {
  constructor(@Inject(DOCUMENT) private document: any) {}
}

Mit diesem können Sie auf Ihr Element zugreifen und eine Logik dazu definieren

let element = this.document.getElementbyClassName('fc-oss');
element.style.display = element.style.display === 'none' ? 'block' : 'none';
3
VadimB

Sie können mit *ngIf="boleanVar" arbeiten, es in Ihrem ts 'boleanVar = true' in Ihrem ts initialisieren und <br>< button (click)="boleanVar = !boleanVar"> Toggle visibility</button>

1

Sie können dafür die ngif-Direktive verwenden.

@Component({
  selector: 'ng-if-simple',
  template: `
    <button (click)="show = !show">{{show ? 'hide' : 'show'}}</button>
    show = {{show}}
    <br>
    <div *ngIf="show">Text to show</div>
`
})
class NgIfSimple {
  show: boolean = true;
}

Je nach Wert der Variablen show wechselt das div-Element zur Ansicht.

0
Liju Kuriakose