#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 .