Угловая генерация страниц CLI-маршрутов и отложенная загрузка - PullRequest
0 голосов
/ 21 января 2019

У меня есть вопросы о том, как CLI генерирует страницы и в основном генерирует маршруты. При создании новой страницы с помощью CLI ng создаются модуль страницы / html / spec / scss и обновляется модуль маршрутизации.

1) По умолчанию страница добавляется лениво загруженным способом в app.routing.module:

 { path: 'test', loadChildren: './test/test.module#TestPageModule' },

А также в test.module, маршрут:

const routes: Routes = [
  {
    path: '',
    component: TestPage
  }
];

Также добавлено с пустым путем => Почему? Я думаю, я мог бы удалить все это, это ничего не изменит, не так ли?

2) Я прочитал там: limiting provider-scope-by-lazy-loading-modules что экземпляр службы не совпадает с модулем с отложенной загрузкой. Затем, если я хочу, чтобы служба была доступна в приложении, событие, хотя оно имеет свойство

@Injectable({
  providedIn: 'root'
})

модуль с ленивой загрузкой будет иметь новый экземпляр? Или я не понял.

Пример прост: у меня есть служба, которая извлекает список пользовательских элементов, и служба, которая отображает этот список как свойство. Когда я получаю доступ к деталям элемента на лениво загруженной странице, список пользователей становится пустым от внедренного сервиса, так что я предполагаю, что это новый экземпляр этого ... В примерах реализации master / detail я видел сервисы, которые извлекают детали при переходе к нему, но не повторно используют список, который уже был создан в другом сервисе.

Я хотел бы знать, почему CLI использует такой способ работы, если у него есть такое ограничение?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 22 января 2019
  1. Пустой путь скажет маршрутизатору, компонент, который будет загружен, когда вы нажмете URL (в вашем случае «тест») модуля.
  2. Для того, чтобы создать один экземпляр для службы в приложении, вам нужно импортировать сервис и добавить его в список провайдеров в корневом модуле (например, app.module.ts)
...