route - angular title service




So deaktivieren Sie eine Eingabe in angle2 (9)

Deaktivieren Sie TextBox in Angular 7

<div class="center-content tp-spce-hdr">
  <div class="container">
    <div class="row mx-0 mt-4">
      <div class="col-12" style="padding-right: 700px;" >
          <div class="form-group">
              <label>Email</label>
                <input [disabled]="true" type="text" id="email" name="email" 
                [(ngModel)]="email" class="form-control">
          </div>
     </div>
   </div>
 </div>

In ts is_edit = true zum Deaktivieren ...

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

Ich möchte einfach nur eine Eingabe auf der Basis von true oder false deaktivieren.

Ich habe folgendes versucht:

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

Eine Notiz als Antwort auf Belters Kommentar zu Fedtucks akzeptierter Antwort , da mir der Ruf fehlt, Kommentare hinzuzufügen.

Dies gilt nicht für alles, was mir im Einklang mit den Mozilla-Dokumenten bekannt ist

disabled ist gleich true oder false

Wenn das Attribut disabled vorhanden ist, ist das Element unabhängig vom Wert deaktiviert. Siehe dieses Beispiel

<input placeholder="i can be changed"/>
<input disabled placeholder="i can NOT be changed"/>
<input disabled="true" placeholder="i can NOT be changed"/>
<input disabled="false" placeholder="i can NOT be changed"/>

Ich glaube, ich habe das Problem herausgefunden. Dieses Eingabefeld ist Teil eines reaktiven Formulars (?), Da Sie formControlName . Dies bedeutet, dass das, was Sie versuchen, indem Sie das Eingabefeld mit is_edit deaktivieren, nicht funktioniert, z. B. Ihr Versuch [disabled]="is_edit" , was in anderen Fällen funktionieren würde. Mit Ihrem Formular müssen Sie Folgendes tun:

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

und verlieren die is_edit insgesamt.

Wenn das Eingabefeld standardmäßig deaktiviert werden soll, müssen Sie das Formularsteuerelement wie folgt einstellen:

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

Hier ist ein plunker


Ich nehme an, Sie meinten false statt 'false'

Außerdem erwartet [disabled] einen Boolean . Sie sollten die Rückgabe einer null vermeiden.


Und auch wenn das Eingabefeld / die Taste deaktiviert bleiben muss, funktioniert einfach <button disabled> oder <input disabled> .


Versuchen Sie, attr.disabled anstelle von disabled

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

Wenn Sie möchten, dass die Eingabe für eine Anweisung deaktiviert wird. Verwenden Sie [readonly]=true oder false anstelle von disabled.

<input [readonly]="this.isEditable" 
    type="text" 
    formControlName="reporteeName" 
    class="form-control" 
    placeholder="Enter Name" required>

kann einfach wie

 <input [(ngModel)]="model.name" disabled="disabled" 

Ich habe es so verstanden. Also bevorzuge ich.


<input [disabled]="isDisabled()" id="name" type="text">

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


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




disabled-input