I'm trying to disable a button when it is clicked. By clicking I'm calling a function and I want to disable the button using that function. How can I access button's property with ElementRef and disable it? I'm not very familiar with how to use ElementRef. Any help would be greatly appreciated!
You can disable a button in angular after it clicked by bounding the button disabled property to a Boolean variable in the component.
You can enable or disable the ButtonGroup for Angular. By default, the component is enabled. To disable the whole group of buttons, set the disabled attribute of the ButtonGroup to true . To disable a specific button, set its own disabled attribute to true and leave the disabled attribute of the ButtonGroup undefined.
If you really wanted to disable the button via an ElementRef, you can use the ViewChild method to get a reference to your button and then set the button to disabled using its nativeElement
property.
import { Component, ViewChild } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>My First Angular 2 App</h1>
<button #myButton (click)="onClicked()">Click me!</button>`
})
export class AppComponent {
@ViewChild('myButton') button;
onClicked() {
this.button.nativeElement.disabled = true;
}
}
However, Angular2 recommends using ElementRef's as a last resort. The same functionality you desire can be achieved through property binding.
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>My First Angular 2 App</h1>
<button [disabled]="isDisabled" (click)="onClicked()">Click me!</button>`
})
export class AppComponent {
private isDisabled = false;
onClicked() {
this.isDisabled = true;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With