Как реализовать сайт с сотнями страниц в Angular2

Я готовлю SPA-сайт, содержащий сотни страниц, похожих на статьи (кроме электронной коммерции, логина и т. Д.). Каждая статья имеет свой собственный URL. Я хочу реализовать это с помощью Angular2. Единственное решение, которое я нашел до сих пор:

1. подготовить сотни компонентов Agular2, по одному компоненту для каждой статьи ...

... с templateUrl, указывающим на разметку статьи. Поэтому мне понадобятся сотни компонентов, аналогичных:

@core.Component({
  selector: 'article-1',
  templateUrl: 'article1.html'
})
export class Article1 {}

2. отобразить статью, используяAsyncRoute

увидетьЛенивая загрузка компонентов маршрута в Angular2

@core.Component({
  selector: 'article-wrapper',
  template: '<router-outlet></router-outlet>'
})
@router.RouteConfig([
  new router.AsyncRoute({
    path: '/article/:id',
    loader: () => {
      switch (id) {
        case 1: return Article1;
        case 2: return Article2;
          //... repeat it hundreds of times
      }
    },
    name: 'article'
  })
])
class ArticleWrapper { }

В Angular1 существовала директива ngInclude, которая отсутствует в Angular2 из-за проблем безопасности (см.Вот).

[Правка 1] Существует не только проблема с самим кодом. Проблема также сстатическая природа этого решения. Если мне нужен сайт с картой сайта и динамической структурой страницы - для добавления одной страницы требуется перекомпиляция всего модуля JavaScript ES6.

[Правка 2] Концепция «разметка x html как данные» (где разметка представляет собой не только статический HTML, но и HTML с активными компонентами) - это базовая концепция всей сети (каждая CMS имеет свои данные разметки в базе данных). Если для него не существует решения Angular2, оно отрицает эту базовую концепцию. Я считаю, что должен быть какой-то трюк.

Ответы на вопрос(1)

Ваш ответ на вопрос