現在取り組んでいるアプリケーションを最新の 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
ルーターの以前のリリースでは、これは「子」を使用して簡単に実現できました。
export const AdminRoutes: RouterConfig = [
{
path: "Admin",
component: AdminComponent,
Children: [
...UserRoutes,
...TelephonyRoutes,
...NotificationRoutes
]
}
]
別のファイルでは、サブモジュールの一部として、個々のモジュール ルートも定義します。
export const UserRoutes: RouterConfig = [
{
path: "users",
component: userComponent,
children: [
{path: "new-user", component: newUserComponent}
]
}
]
これはすべて非常にうまく機能しました。モジュールへのアップグレードの過程で、代わりにすべてを独自の個別のルーティング ファイルに移動したため、これら 2 つのファイルは次のようになりました。
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)
これらすべてが整ったら、userRouting をインポートする UsersModule と、adminRoutes と UsersModule をインポートする AdminModule があります。私の考えでは、UsersModule は AdminModule の子であるため、ルーティングは以前と同じように機能します。残念ながら、そうではないので、ただのユーザールートになってしまいます
/users/new-user
それ以外の
/admin/users/new-user
さらに、このため、新しいユーザー コンポーネントは管理コンポーネントのルーター アウトレットに読み込まれず、アプリケーションのスタイリングとナビゲーションが失われます。
私の人生では、UserModule のルートを AdminModule の子として参照する方法を考え出すことはできません。これを古い方法で実行しようとしましたが、ルートが 2 つのモジュールにあるというエラーが発生しました。これは明らかに新しくリリースされたものであるため、これらのケースの一部に関するドキュメントは少し限られています。
誰でも提供できるヘルプをいただければ幸いです。