#angular
Вопрос:
В настоящее время у меня есть проблема, которой у меня никогда не было.
С помощью этого кода ниже мои тексты отображаются правильно.
<li data-help="4">
<span class="numberIconPage2" style="position: absolute; top: -238px">4</span>
<p class="titrePage2" style="position: absolute; top: -238px;">
{{'1609-1611' | t }}
</p>
<p class="step1 help-1" >
<input type="text" class="inputSignInAccess" [(ngModel)]="otp">
</p>
</li>
Когда я добавляю это условие
<div *ngIf="otp.length > 2 ">
Max 2 characters long.
</div>
Мои сообщения исчезли.
Однако, если я введу цифру во входные данные, элементы будут отображаться правильно.
Я хотел бы, чтобы текст отображался, даже если пользователь не вводит никакого значения.
Я не понимаю, почему это условие сбивает с толку мой HTML-код?
<li data-help="4">
<span class="numberIconPage2" style="position: absolute; top: -238px">4</span>
<p class="titlePage2" style="position: absolute; top: -238px;">
{{'1609-1611' | t }}
</p>
<input type="text" class="inputSignInAccess" [(ngModel)]="otp">
<div *ngIf="otp.length > 2 ">
Max 2 characters long.
</div>
</li>
Большое вам спасибо за ваш ответ.
Комментарии:
1. не могли бы вы поделиться своим кодом на определенном
ngFor
уровне, пожалуйста?2. Проверьте консоль инструментов разработчика на наличие ошибок
3. пожалуйста, создайте работающую версию вашей проблемы в stackblitz или где-нибудь еще, чтобы мы могли увидеть проблему и решить ее
Ответ №1:
Я предполагаю otp
, что значение не определено (или, возможно, равно нулю), вы получаете «Не удается прочитать длину свойства неопределенного» в консоли, и эта ошибка портит визуализацию шаблона. Исправление было бы *ngIf="otp?.length > 2"
или инициализацией otp
пустой строки.
Был ли я прав?
Комментарии:
1. Большое вам спасибо, это прекрасно работает! Как вы инициализируете переменную
opt
в HTML ?? Я не понимаю?2. @elodie не в HTML, а в TS. Я предполагаю
opt
, что там объявленоopt: string
или что-то подобное. Просто сделай этоopt: string = ''
, или простоopt = ''
.