Как я могу обновить список (* ngFor) onChange при использовании - PullRequest
0 голосов
/ 21 мая 2018

Я не уверен, как правильно сформулировать этот вопрос, поэтому я покажу основной код, а затем опишу свою проблему ниже.

<ion-searchbar 
        [(ngModel)]="autoc" 
        (ionInput)="updateSearch()" 
        (ionCancel)="dismiss()"
</ion-searchbar>
<ion-list>
    <ion-item *ngFor="let item of autocompleteItems" 
        {{ item.description }}
    </ion-item>
</ion-list>

Всякий раз, когда панель поиска получает новое значение, она вызываетФункция updateSearch - это работает.В функции updateSearch я помещаю данные в массив autocompleteItems, который я использую для перечисления каждого элемента в массиве (как в коде выше).Вот функция updateSearch:

 updateSearch(){
    ...
     predictions.forEach(function (prediction) {              
        self.autocompleteItems.push(prediction);
     });
    }

Мои проблемы в том, что мой список элементов не обновляется после того, как я что-то ввожу в строку поиска.Я должен либо напечатать еще одну букву, либо сосредоточиться на чем-то за пределами панели поиска.Поэтому, когда я набираю «Stackstreet 5», он не сразу показывает «Stackstreet 5» (он показывает «Stackstreet»), мне нужно добавить дополнительный пробел или что-то подобное, чтобы получить «новое обновление».
Подводя итог: ion-item с * ngFor = "let item of autocompleteItems" не обновляет onChange (ionInput), но выполняет updateSearch. Поэтому мне придется каким-то образом обновить / обновить список в html.я могу решить это?

1 Ответ

0 голосов
/ 22 мая 2018

Исправлено с помощью обещания.Я сомневаюсь, что это была ошибка Ionics - может быть, Google API доставил мне неприятности.

В любом случае, вот код, который я заменил, если кому-то интересно.
[inside updateSearch ()]

  this.getPlacesBySearch()
            .then((predictions) => self.autocompleteItems = predictions)
            .catch(error => {
                self.autocompleteItems = [];
                console.log('error', error)
    })

Работает как шарм!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...