如何在我点击它时将禁用的mat-input设置为启用?

Ano*_*oat 4 angular-material angular angular5

我有一个mat-input默认情况下禁用它来更改文本.如何在点击它时将禁用设置为启用?之后我想在失去焦点时再次变为禁用状态,或者我点击输入.我能这样做吗?

Ian*_*ici 8

您可以创建一个状态变量,并clickmouseout事件发生时将其分配给输入已禁用的属性

<form class="example-form">
  <mat-form-field class="example-full-width" (click)="disabled=false" (mouseout)="disabled=true">
    <input matInput placeholder="Favorite food" value="Sushi"
          [attr.disabled]="disabled?'':null">
  </mat-form-field>

  <mat-form-field class="example-full-width">
    <textarea matInput placeholder="Leave a comment"></textarea>
  </mat-form-field>
</form>
Run Code Online (Sandbox Code Playgroud)

  • 设置禁用标志的另一种方法是在mat-input上使用`readOnly`标签.Angular Material api文档:[https://material.angular.io/components/input/api](https://material.angular.io/components/input/api) (4认同)

Raf*_*ura 7

我用这种方式,在我看来是更好的方式

<input matInput placeholder="Email" [ngModel]="franchise.user_email" formControlName="email" readonly>
Run Code Online (Sandbox Code Playgroud)

  • @SHUBHASIS 禁用不适用于“输入”,因为在响应式表单的情况下,应在组件内的 FormControl 上设置它。`名称:({值:'',禁用:this.isEditMode })` (4认同)