【问题标题】:Apply class to form elements when form is disabled Angular - Ionic禁用表单时将类应用于表单元素Angular - Ionic
【发布时间】:2021-03-31 00:18:09
【问题描述】:

我使用 Angular 9 + ionic。我有一个条件使我的表单处于禁用状态,它工作正常,但元素非常不透明,我需要降低不透明度,因为我有一个类可以应用于我的表单的子元素,但显然 css 样式不是应用得很好。

我的 CSS:

.form-opacity-disabled .ion-label .ion-input {
   opacity: 0.8  !important;
 }

我的 HTML:

<form [formGroup]="myFormData"
  [class.form-opacity-disabled]="myFormData.disabled"
 (ngSubmit)="save()">

 <ion-col size="3">
    <ion-item>
      <ion-label  class="label-text">Name</ion-label> 
      <ion-input formControlName="name" ></ion-input>
    </ion-item>
  </ion-col>
</form>

我尝试使用 myFormData.disable 和“禁用”但不起作用

我的 .ts 条件:

ngOnInit() {
  ....
  ....
  const disableForm = (localStorage.getItem('item') === '1'); //-> is true
  if(disableForm) {
      this.myFormData.disabled();
  }
}

如何将样式应用于我的表单组件?

【问题讨论】:

    标签: css angular ionic-framework opacity


    【解决方案1】:

    如果表单无效,Angular 会自动将ng-invalid css 类添加到form 标签。这应该有效:

    form.ng-invalid {
      .ion-label .ion-input {
        opacity: 0.8
     }
    }
    

    【讨论】:

    • 谢谢,但我需要是否启用或禁用外部条件。表单的状态不适合我
    • 对于外部检查,您应该使用[ngClass] 例如:[ngClass]="{yourCondition != true ? 'invalidClass' : 'validClass'}"
    猜你喜欢
    • 2017-08-17
    • 2018-05-31
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2016-06-09
    • 2011-12-09
    • 1970-01-01
    • 2017-11-03
    相关资源
    最近更新 更多