Element entfernen, aber nicht funktioniert. Kann jemand dieses Problem beheben?

-3
SRANSV 18 Jän. 2019 im 20:16

3 Antworten

Beste Antwort

Holen Sie sich elementRef und entfernen Sie das Attribut mit Renderer2 (Renderer ist veraltet).

@ViewChild('removeDisabled', {read: ElementRef}) removeDisabled:ElementRef;

constructor(private elementRef:ElementRef,private rendd:Renderer2){ 

}

removeDisabledfn(){
  this.rendd.removeAttribute(this.removeDisabled.nativeElement, 'disabled');
}

Und in Vorlage

<button  #removeDisabled disabled>Click Button</button>
2
Patryk Błaziński 18 Jän. 2019 im 17:20

Dies ist möglicherweise nicht das Problem, das Sie lösen möchten. Im Allgemeinen ist es jedoch am besten, Datenbindungen zum Anwenden / Ändern von Attributen zu verwenden. Innerhalb Ihrer Komponentenklasse:

export class AppComponent {
  buttonDisabled = false;
  toggleDisabled(){
    this.buttonDisabled = !this.buttonDisabled;
  } 
}

Und in deinem html:

<button [disabled]='buttonDisabled'>Click Button</button>
<hr>
<button (click)="toggleDisabled()">Click To Disable</button>

Das Attribut disabled auf der Schaltfläche 'Click Button' folgt der booleschen Variablen buttonDisabled innerhalb der Komponentenklasse.

2
night_owl 18 Jän. 2019 im 17:35

Ich denke, Sie suchen nach den API-Klassen Renderer2.

removeAttribute(el: any, name: string, namespace?: string) Methode von Angular. Erstellen Sie die Instanz der Renderer2 -Klasse in Ihrer Konstruktorkomponente.

constructor(
   private elementRef: ElementRef,
   private renderer: Renderer2){ 
}

removeDisabledfn(){
  this.renderer.removeAttribute(<refrence_of_target_element>, <attribute_name>); // attribute_name in your case --> disabled (as string)
}
1
Yashwardhan Pauranik 5 Feb. 2019 im 09:50