2017-02-13 11 views
0

Это не другой вопрос о решимости, я думаю. Я хотел бы иметь простой и сложный метод для ожидания данных Ajax перед рендерингом компонента в Angular 2. У меня будет около пятидесяти маршрутов, поэтому создание решения для каждого маршрута будет больно.Ждите данных перед просмотром изображений в Angular 2

Может ли кто-то поделиться своим ожиданием данных перед визуализацией?

+1

Не уверен, что у меня есть ваш вопрос, но действительно ручной способ сделать это - установить флаг, такой как 'isReady = true', как только ваш асинхронный вызов будет завершен, и в шаблоне обернуть все с помощью'

...
'. Или вы ищете что-то более активное? – AngularChef

+0

вы можете использовать canActivate –

+1

Я не уверен, что у меня есть часть «У меня 50 маршрутов». Если у вас есть 50 маршрутов, вам все равно придется что-то делать * 50 раз. Независимо от того, что вы делаете, что-то внутри резольвера или внутри самого компонента не имеет большого значения (я имею в виду это число строк кода). Очевидно, вам следует избегать создания 50 уникальных решателей; вы можете создать ** однодисковое обобщенное распознающее устройство, которое исследует маршрут или, лучше, некоторый параметр данных, привязанный к маршруту, чтобы определить, какие данные он должен загрузить. – AngularChef

ответ

4
  • распознаватель https://angular.io/docs/ts/latest/guide/router.html#!#resolve-guard

  • *ngIf="data" в представлении, чтобы предотвратить отрисовку зрения в то время как data является null

  • использования безопасной навигации оператора data?.prop, чтобы предотвратить ошибки в поле зрения креплений data is null