如果用户删除了他们的简历,textarea 是只读的。我该如何防止

textarea is read-only if a user deletes their bio. How do I prevent that

如果用户在他们的个人资料页面上删除了他们的简历,该字段将变为只读,您将无法输入任何文本。它以这种方式工作有点奇怪。无论他们的简介是 null 还是 undefined,我如何才能使该字段可编辑?现在,我必须手动将文本插入 firebase 字段,以便文本区域可编辑。

<ion-card>
  <ion-card-content>
    <ion-label>Enter bio</ion-label>
    <div *ngIf="bio">
      <textarea #myInput rows="2" maxLength="100" (keyup)="resize()" [(ngModel)]="bio" placeholder="Enter your bio"></textarea>
      <span>{{100 - bio.length}}</span>
    </div>
  </ion-card-content>
</ion-card>

问题出在您的 *ngIf="bio" 上。模板的编写方式,如果生物是 truthy,则只显示文本区域。这意味着 0''undefinednull 和其他一些值将导致 div 不显示。

如果您将 *ngIf 从包含 div 移动到显示长度的 <span>,它应该可以解决您的问题。

<ion-card>
  <ion-card-content>
    <ion-label>Enter bio</ion-label>
    <div>
      <textarea #myInput rows="2" maxLength="100" (keyup)="resize()" [(ngModel)]="bio" placeholder="Enter your bio"></textarea>
      <span *ngIf="bio">{{100 - bio.length}}</span>
    </div>
  </ion-card-content>
</ion-card>