Повторите попытку входа в веб-сервис

Я бы создал пользовательскую реализацию ControlValueAccessor. Последнее соответствовало бы директиве, которая будет прослушивать входное событие хоста. Таким образом, вы сможете ввести в верхний регистр то, что вы заполняете пользователем. Элемент управления будет автоматически содержать значение в верхнем регистре.

Вот реализация:

@Directive ({
  selector: 'input[uppercase]',
  // When the user updates the input
  host: { '(input)': 'onChange($event.target.value.toUpperCase())' }
})
export class UppercaseValueAccessor extends DefaultValueAccessor {
  (...)

  // When the code updates the value of the
  // property bound to the input
  writeValue(value:any):void {
    if (value!=null) {
      super.writeValue(value.toUpperCase());
    }
  }
}

Не забудьте зарегистрировать этот пользовательский атрибут значения в поставщиках директив. Таким образом ваш пользовательский атрибут значения будет использоваться вместо стандартного.

const UPPERCASE_VALUE_ACCESSOR = new Provider(NG_VALUE_ACCESSOR, { useExisting: forwardRef(() => UppercaseValueAccessor), multi: true});

@Directive ({
  providers: [ UPPERCASE_VALUE_ACCESSOR ],
  (...)
})
export class UppercaseValueAccessor ...

И добавьте директиву в атрибут директивы компонента, в котором вы хотите использовать этот подход.

См. Этот класс для более подробной информации:

Эта ссылка может давать дополнительные подсказки (см. раздел «Компонент, совместимый с NgModel»):

0
задан Unbalanced 15 January 2019 в 16:42
поделиться