禁用不工作

Але*_*тић 4 data-binding typescript angular

  1. 不工作:
    • [disabled] = true ,
    • [disabled] = "isDisabled" ----- ts>(isDisabled = true)
    • 基本的html disabler也没有wokring ---- html> disable
    • [attr.disabled] = true ,
    • [attr.disabled] = "isDisabled"----- ts>(isDisabled=true)

我正在尝试为预览和更新制作相同的表单(预览应该禁用输入),但我在html中的输入无法绑定到typescript boolean.在html中,我有一个带有person.name,person.surname ....按钮(预览),按钮(更新)的表,它们都触发onSelect函数并发送person + true/false.

<input [(ngModel)]="osoba.ime" [attr.disabled]="isDisabled" name = "ime" type="text" id="ime">
Run Code Online (Sandbox Code Playgroud)

和打字稿功能和属性

isDisabled = true;

onSelect(o: Osoba, isView) {
    this.isDisabled = isView;
    console.log(document.getElementById('ime'));
    console.log(this.isDisabled);
    this.selectedOsoba = o;
}
Run Code Online (Sandbox Code Playgroud)

this.isDisabled的日志有效

但该元素的日志甚至没有禁用属性

<input _ngcontent-c5="" id="ime" name="ime" type="text" ng-reflect-name="ime" ng-reflect-model="Dusan     " class="ng-untouched ng-pristine ng-valid">
Run Code Online (Sandbox Code Playgroud)

这是整个HTML代码

<form *ngIf="osoba">
  <div class="input">
    <label>Ime Osobe</label>
    <input [disabled]= "isDisabled" [(ngModel)]="osoba.ime" name = "ime" type="text" id="ime">
  </div>
  <div class = "input">
    <label >Prezime Osobe</label>
    <input [(ngModel)]="osoba.prezime"  name = "prezime" type="text" id = "prezime" [disabled] = "isDisabled">
  </div>
  <div >
      <label >Jmbg Osobe </label>
      <input  [(ngModel)]="osoba.jmbg" name = "jmbg" type="text" [attr.disabled]= true >
    </div>
  <div class="input">
    <input type="submit" value="izmeni" (click)="updateOsoba()">
  </div>
</form>
<input id="disabledTest" type="text" value="nekiTekst" [disabled]= true>
Run Code Online (Sandbox Code Playgroud)

表单之外的输入正在工作,但是表单和div中的所有输入都不起作用了什么?

Fen*_*ton 8

使用时attr.disabled,您必须提供文字值,或完全省略该属性.请记住,HTML中的disabled属性只是通过存在来禁用支持该属性的元素.

<input [(ngModel)]="osoba.ime" [attr.disabled]="disabled?'':null" name="ime" type="text" id="ime">
Run Code Online (Sandbox Code Playgroud)

HTML中的以下两项都会导致输入被禁用...

<input disabled />
<input disabled="disabled" />
Run Code Online (Sandbox Code Playgroud)


Abh*_*tam 7

用这个 :

 <input
    type="radio"
    id="primaryIPV6"
    value="2"
    [attr.disabled]="flagValue ? '' : null"
    formControlName="p_ip_type"
    (change)="optionalFn()">
Run Code Online (Sandbox Code Playgroud)