изменить стиль недействительным && потрогал - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь изменить стиль тега i, когда другое поле имеет значение touched и invalid, как указано ниже, но с тегом i ничего не меняется, меняется только тег input.

input.ng-touched.ng-invalid
{
    border-color: red;
}

input.ng-valid
{
    border-color: green ;
}

.green-icon
{
    color:green;
}
.red-icon
{
    color:red;
}
 <div class="form-group">
    <div class="input-group">
      <div class="input-group-prepend">
        <div class="input-group-text bg-white">
          <i class="fas fa-user circle"  [class.green-icon]="CardOwnerName.valid" [class.red-icon]="CardOwnerName.invalid && CardOwnerName.touched"></i>
        </div>
      </div>
      <input #CardOwnerName formControlName="CardOwnerName" name="CardOwnerName" class="form-control" placeholder="Card Owner Name" required>
    </div>  
  </div>

Я предполагаю, что что-то упустил в моей версии Angular. Возможно, что-то осуждается?

Ответы [ 3 ]

1 голос
/ 22 января 2020

Удалите ссылку на элемент в шаблоне и вместо этого получите доступ к объекту формы:

<input formControlName="CardOwnerName" name="CardOwnerName" class="form-control" placeholder="Card Owner Name" required>
get CardOwnerName() {
    return this./* form group name here */.get('CardOwnerName');
}
0 голосов
/ 26 января 2020

ошибка исправлена ​​ChangeDetectionRef.

import {ChangeDetectorRef } from '@angular/core';

constructor( private cdref: ChangeDetectorRef ) {}
ngOnInit() {
this.cdref.detectChanges();
 }
0 голосов
/ 22 января 2020

Попробуйте так:

 <i class="fas fa-user circle" [ngClass]="{'red-icon': form.get('CardOwnerName').invalid, 'green-icon': form.get('CardOwnerName').valid }"  ></i>

или,

<i class="fas fa-user circle" [ngClass]="(form.get('CardOwnerName').valid)?'green-icon':'red-icon'"  ></i>

Рабочая демонстрация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...