как я могу получить Validators.minLength ввода формы и динамически установить его в html?

#angular #typescript #angular9

#angular #машинопись #angular9

Вопрос:

У меня есть форма в angular, и я хочу использовать значение формы «Validators.minLength» в теге ввода html.

Я хочу знать, есть ли какой-либо способ использовать непосредственно из средства проверки формы в html;

пример: [maxLength]=»form.get(‘почтовый индекс’).validators(‘maxLength)»

Мой ts-код:

             zipCode: [ '', [
                Validators.required,
                Validators.maxLength(10),
                number,
            ],
  

и html:

                         <input type="tel"
                               formControlName="zipCode"
                               [maxLength]="10"  // here I want insert dynamic number from ts file
                               placeholder="insert your zip code">
  

спасибо за вашу помощь.

Ответ №1:

TS

 this.maxLength=10;
zipCode: [ '', [
                Validators.required,
                Validators.maxLength(this.maxLength),
                number,
            ],
  

HTML

 <input type="tel" formControlName="zipCode" placeholder="insert your zip code">
  

Комментарии:

1. что касается вашего ответа, я хочу знать, есть ли способ добавить значение maxlength во входной тег, пример: [maxLength]=»form.get(‘zipCode’).maxLength» ???

2. вы можете привязать [maxLength] к такой переменной, как [maxLength] =»maxLength», но я не понял, оба они одинаковы, верно?

3. да, это правда, но у меня много таких же полей, и для меня это не подходящий способ

Ответ №2:

TS:

 public maxZipCodeLength: number = 10;
  

HTML:

 <input type="tel" formControlName="zipCode" [maxlength]="maxZipCodeLength" />
  

Этого должно быть достаточно.

Комментарии:

1. что касается вашего ответа, я хочу знать, есть ли какой-либо способ использовать непосредственно из средства проверки формы в html; пример: [maxLength]=»form.get(‘zipCode’).validators(‘maxLength)»

2. Это плохой способ сделать это. Имейте в виду, что согласно официальной документации, если вы используете maxlength для ввода html, в основном angular уже преобразует его в средство проверки формы. https://angular.io/api/forms/Validators#maxlength . Это означает, что если вы используете maxlength on input, вам не нужно использовать validator .