SaveLolliPoP
@SaveLolliPoP
1 / 0 = ∞

Как в angular создавать первый элемент при этом его не объявлять в ts?

У меня есть объект массива:
Lead = {
comment: []
}


Хочу вывести для этого массива инпут, чтобы вбить туда какую то строку.
<mat-form-field *ngFor="let n of Lead.comment">
     <input type="tel" matInput [(ngModel)]="Lead.comment[n]" [ngModelOptions]="{standalone: true}" placeholder="comment">
</mat-form-field>


Естественно он не выведется, тк этот массив пуст.
Я изменяю этот массив, чтобы можно было вбить первый элемент:
Lead = {
comment: ['']
}

Все хорошо, инпут есть все отлично!
Допустим я сохранил Lead в базу, не введя в этот инпут ничего.

Далее я сделал страницу для вывода всех лидов, и сделал поле ввода нового комментария уже другим способом, объявив какую то новую переменную и в случае нажатия на какую то кнопку я пушу новый комментарий в массив Lead.comment.

В итоге и первый способ при создании нового элемента мне не нравится, так как в бд будет храниться пустая строка, и если я захочу вывести какой то Lead он мне выдаст пустой комментарий. И второй способ мне тоже не нравится, так как на странице будет много элементов.
Как правильно это делается?
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
Создайте еще блок с одним этим вашим инпутом, и на него *ngIf="Lead?.comment?.length===0"
Т.е. показывать инпут, если массив есть и он пустой.
А если массив не пустой, то покажет ваш let n of
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы