Угловой 5: предотвратить перезагрузку компонента при изменении параметра - PullRequest
0 голосов
/ 05 июня 2018

У меня есть маршрут /search, в котором есть 2 компонента;Один из них - это окно поиска с результатами, а другой - новостная лента, которая должна быть на каждой странице, не связанной с поиском.Если я выполняю поиск и добавляю параметры к URL-адресу, результаты будут отображаться под моим окном поиска, но после повторной инициализации страницы / компонента также происходит повторная инициализация новостной ленты, при которой снова приходится получать те же данные (это долговыполняется задача).

Как я могу обновить URL, чтобы отразить изменение состояния одного компонента, без повторного рендеринга другого компонента на странице?

angularjs раньше имел reloadOnSearch: false, которыйрешит эту проблему, хотя небрежно

Редактировать: Лучше было бы вместо этого сохранить возвращенный результат в Сервисе, а затем при изменении маршрута получить последний результат снова изоказание услуг?Если это так, как это будет сделано?

Редактировать: Как cgTag связан с.Именованные торговые точки могут быть использованы.Я не вижу никакого контента в месте, где должна быть точка выхода

app-routing.module.ts

const routes: Routes = [
  { path: 'search', component: SearchComponent },
  { path: 'view', component: ClientNewsFeedComponent, outlet: 'client-news-feed' }
]; 

search.component.html

<div>
  <cc-search-client-field></cc-search-client-field>
  <router-outlet name="client-news-feed"></router-outlet>
</div>

и затем просмотр URL-адреса /search(client-news-feed:view) на маршрутизаторе не выводит никакого содержимого

Редактировать: Понял.Маршрутизация должна быть

path: 'search', component: SearchComponent, children: [
  { path: 'view', component: ClientNewsFeedComponent, outlet: 'client-news-feed' }
]

, а URL должен иметь /

/ search / (client-news-feed: view)

1 Ответ

0 голосов
/ 05 июня 2018

Возможно, вы захотите использовать функцию outlet маршрута.

https://angular.io/guide/router#displaying-multiple-routes-in-named-outlets

Это позволяет вам визуализировать вторичный маршрут без изменения текущегомаршрут.Затем вы будете использовать дополнительный маршрут для отображения результатов поиска.

...