[angular] angular2에서 입력을 비활성화하는 방법

is_edit = true비활성화하려면 ts 에서 …

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

단순히 true또는 기반으로 입력을 비활성화하고 싶습니다 false.

나는 다음을 시도했다 :

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



답변

attr.disabled대신을 사용해보십시오.disabled

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


답변

나는 문제를 알아 냈다고 생각합니다.이 입력 필드는을 포함했기 때문에 반응 양식 (?)의 일부입니다 formControlName. 이것은 입력 필드를 비활성화하여 수행하려는 작업이 작동하지 않음을 의미합니다 ( is_edit예 : [disabled]="is_edit"다른 경우에는 작동하는 시도 ). 양식으로 다음과 같은 작업을 수행해야합니다.

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

그리고 is_edit모두 잃습니다 .

입력 필드를 기본값으로 비활성화하려면 양식 컨트롤을 다음과 같이 설정해야합니다.

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

여기 플런 커가 있습니다


답변

간단히 할 수 있습니다.

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


답변

일부 명령문에서 입력을 비활성화하려는 경우. 사용 [readonly]=true또는 false대신 사용할 수의.

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


답변

<input [disabled]="is_edit" id="name" type="text">
<button (click)="is_edit = !is_edit">Change input state</button>

export class AppComponent {
  is_edit : boolean = false;
}


답변

나는 당신이 false대신에 의미했다고 생각합니다'false'

또한, [disabled]을 기대하고있다 Boolean. 당신은 반환하지 않도록해야합니다 null.


답변

의 fedtuck의 수락 된 답변 에 대한 Belter의 의견에 대한 답변 입니다.

이것은 Mozilla 문서 와 관련하여 내가 아는 어떤 것도 사실이 아닙니다.

disabled는 true 또는 false와 같습니다.

disabled 속성이 있으면 값에 관계없이 요소가 비활성화됩니다. 이 예 보기

<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"/>