#angular #typescript #variables #components
Вопрос:
Я определил переменную MIN_PW
над моим компонентом export class MyComponent
, и , хотя intellisense распознает ее в моем formBuilder
, она не отображается в пользовательском интерфейсе должным образом (пользовательский интерфейс показывает, что «Пароль должен содержать не менее символов»).
Первоначально я определил переменную внутри export class
, и она работала, но мне посоветовали установить ее const
и переместить над компонентом.
Файл компонента:
const MIN_PW = 12;
export class MyComponent implements OnInit {
myFormGroup = this.formBuilder.group({
password: new FormControl(null, [Validators.required, Validators.minLength(MIN_PW)]),
// etc
)
}
Файл шаблона:
<mat-form-field class="password-field">
<mat-error *ngIf="myFormGroup.controls['password'].invalid">Password must contain at least {{MIN_PW}} characters.</mat-error>
</mat-form-field>
Ответ №1:
Я бы предложил объявить все ваши константы в отдельном файле, который вы будете импортировать, куда захотите.
Мне кажется, что следующий подход кажется более прямым для вашего случая:
- Определите и экспортируйте свои константы в один или несколько файлов TS.
- Импортируйте константы с помощью import { MY_CONSTANT } из ‘../constants/my-constant.ts’; где бы они вам ни понадобились.
- Используйте их и будьте счастливы.