163 votes

Comment désactiver une entrée dans angular2

Dans ts is_edit = true à désactiver ...

 <input [disabled]="is_edit=='false' ? true : null" id="name" type="text" [(ngModel)]="model.name" formControlName="name" class="form-control" minlength="2">
 

Je veux simplement simplement désactiver une entrée basée sur true ou false .

J'ai essayé de suivre:

 [disabled]="is_edit=='false' ? true : null"
[disabled]="is_edit=='true'"
[disabled]="is_edit"
 

384voto

fedtuck Points 1

Essayez d'utiliser attr.disabled , au lieu de disabled

 <input [attr.disabled]="disabled ? '' : null"/>
 

45voto

AJT_82 Points 30605

Je pense que j'ai compris le problème, ce champ de saisie est une partie d'une forme réactive (?), puisque vous avez inclus formControlName. Cela signifie que ce que vous essayez de le faire en désactivant le champ de saisie avec is_edit n'est pas de travail, de l'e.g votre tentative, [disabled]="is_edit", qui seraient dans d'autres cas, les travaux. Avec votre formulaire, vous devez faire quelque chose comme ceci:

toggle() {
  let control = this.myForm.get('name')
  control.disabled ? control.enable() : control.disable();
}

et de perdre l' is_edit tout à fait.

si vous souhaitez que le champ d'entrée sera désactivée par défaut, vous devez configurer le contrôle de formulaire:

name: [{value: '', disabled:true}]

Voici un plunker

35voto

Ifesinachi Bryan Points 401

Vous pouvez simplement faire ceci

 <input [disabled]="true" id="name" type="text">
 

12voto

Yoav Schniederman Points 1882
<input [disabled]="isDisabled()" id="name" type="text">

export class AppComponent {
  name:string;
  is_edit : boolean = false;


 isDisabled() : boolean{
   return this.is_edit;
 }
}

7voto

please delete me Points 206

Je suppose que vous vouliez dire false au lieu de 'false'

En outre, [disabled] s'attend à un Boolean . Vous devriez éviter de renvoyer un null .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X