В процессе обновления приложения я работаю с последним кандидатом на выпуск Angular 2. В рамках этой работы я пытаюсь использовать спецификацию NgModule и переносить все части своего приложения на модули. По большей части это прошло очень хорошо, за исключением проблемы с маршрутизацией.
"@angular/common": "2.0.0-rc.5",
"@angular/compiler": "2.0.0-rc.5",
"@angular/core": "2.0.0-rc.5",
"@angular/forms": "0.3.0",
"@angular/http": "2.0.0-rc.5",
"@angular/platform-browser": "2.0.0-rc.5",
"@angular/platform-browser-dynamic": "2.0.0-rc.5",
"@angular/router": "3.0.0-rc.1",
Мое приложение построено как состав модулей, при этом несколько модулей склеиваются как дочерние элементы родительского модуля. Например, у меня есть модуль администратора, который состоит из модуля уведомлений, модуля пользователей и телефонного модуля (например). Маршруты к этим модулям должны выглядеть как...
/admin/notifications/my-notifications
/admin/users/new-user
/admin/telephony/whatever
В более ранней версии маршрутизатора это было легко выполнить с помощью "children"
export const AdminRoutes: RouterConfig = [
   {
      path: "Admin",
      component: AdminComponent,
      Children: [
         ...UserRoutes,
         ...TelephonyRoutes,
         ...NotificationRoutes
      ]
   }
]
В другом файле, как части подмодулей, я бы определил маршруты отдельных модулей, а также i.e.
export const UserRoutes: RouterConfig = [
    {
       path: "users",
       component: userComponent,
       children: [
           {path: "new-user", component: newUserComponent}
       ]
    }
]
Все это работало очень хорошо. В процессе обновления до модулей я переместил все в свои собственные файлы маршрутизации, а теперь эти два больше похожи на это.
const AdminRoutes: Routes = [
    {path: "admin", component: AdminComponent}
] 
export const adminRouting = RouterModule.forChild(AdminRoutes)
и
const UserRoutes: Routes = [
       path: "users",
       component: userComponent,
       children: [
           {path: "new-user", component: newUserComponent}
       ]
] 
export const userRouting = RouterModule.forChild(UserRoutes)
Со всем этим на месте у меня есть UserModule, который импортирует userRouting, а затем AdminModule, который импортирует adminRoutes и UserModule. Я думал, что поскольку UserModule является дочерним элементом AdminModule, маршрутизация будет работать так, как она привыкла. К сожалению, это не так, я в конечном итоге с маршрутом пользователей, который просто
/users/new-user 
вместо
/admin/users/new-user
Кроме того, из-за этого компонент нового пользователя не загружается в розетку маршрутизатора моего админ-компонента, который отменяет стиль и навигацию моего приложения.
Я не могу на всю жизнь придумать, как ссылаться на маршруты моего UserModule в качестве дочерних элементов моего AdminModule. Я попытался сделать это по-старому и получить ошибки о маршрутах, находящихся в двух модулях. Очевидно, так как это недавно выпущено, документация по некоторым из этих случаев немного ограничена.
Любая помощь, которую любой может предоставить, будет с благодарностью!
