Почему список данных не работает, когда я делаю его динамическим (Angular 7)?

Я создал функцию в своем файле .ts, которая позволяет обновлять массив (пустой по умолчанию), который я использую для создания параметров моего списка данных.

Когда я проверяю код HTML, я вижу параметры в списке данных, но они не отображаются в графическом интерфейсе.

<input list='id-RPG' type = "text" pInputText class = "inputTextStyle" [(ngModel)] = "MyModal" (input) = "searchList($event.target.value)"/>
<datalist id='id-RPG'>
 <option *ngFor = "let element of array" [(value)] = "element ">{{element }}</option>
</datalist>
ngOnInit(){
this.array = [];
}

searchList(){
//Rest Here
this.array = ["aaa","aab","aac","aad"]
}

Сообщение об ошибке не отображается

Укажите минимальный воспроизводимый пример этой проблемы.

user4676340 29.05.2019 14:04

Скинул код на stackblitz: stackblitz.com/edit/angular-8skxmw Не вижу проблемы. Ваш список изначально пуст, и когда вы привязываетесь к вводу, он добавляет содержимое по мере обновления массива. @Maryannah FYR ссылка выше имеет код, но просто не может воспроизвести :) Я только что изменил

knomdlo 29.05.2019 14:11

@knomdlo в том-то и дело, что ОП должен предоставить воспроизводимый пример проблемы. Я тоже мог бы это сделать, но я не тот, кто знает проблему. И обычно, просто предоставив минимальный воспроизводимый пример, можно решить свою проблему, не задавая вопрос в SOF (со мной это случалось не раз)

user4676340 29.05.2019 14:14

Я думаю, что этого достаточно. У меня есть список данных в моем html-коде и массив в моем .ts-файле, который позволяет ему передавать его, когда я заполняю свой массив данными, и я проверяю HTML-код. Я вижу, что параметры добавляются в список данных, но они не показывают

Zakaria 29.05.2019 14:16
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
4
534
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы написали [(значение)], что не работает. Вы должны написать (значение)

<option *ngFor = "let element of array" (value) = "element ">

И вам не нужно инициализировать массив в ngOnInit

ngOnInit(){
  this.array = [];
}

Просто напишите это как глобальную переменную

array: Array<string> = [];
ngOnInit(){}
Ответ принят как подходящий

Я думаю, что невозможно обновить DataList в режиме реального времени, каждый раз, когда вы должны щелкнуть снаружи, чтобы получить новые данные... Я использовал старый метод, я думаю, что это правильный способ сделать это.

<div class = "suggestedList" *ngIf = "array.length > 0">
 <ul class = "UlSugList" *ngFor = "let element of array">
  <li class = "LiSugList">
   <a (click) = "select(element)">{{element}}</a>
  </li>
 </ul>
</div>
select(RPG) {
    this.MyModal = RPG;
    this.array = [];
}

Другие вопросы по теме