0

最新の angular-webpack-starter (@angular/router 3.0.0-beta.2 を使用した RC4) で非同期モジュールの読み込みを実行する方法を理解できていません。

例が含まれていますが、より多くの説明、何をすべきか、およびこれがどのように連携するかを取得すると役立ちます.

私がしたこと: - 怠惰なコンポーネントルートをエクスポートしました:

export const referenzRoutes: RouterConfig = [
  { path: '', component: Test3 },
  { path: 'testApp', component: TestApp },
]

次に、親コンポーネントのルートに子ルートをインポートして使用しました。

import {referenzRoutes} from "./+Referenz/referenz.routes";
export const routes: RouterConfig = [
  {...},
  {path: 'referenz', component: 'Referenz', canActivate: [ WebpackAsyncRoute ], 
  children: referenzRoutes},
]

そして、すべてのコンポーネントに対して次のような非同期ルートを定義しました。

export const asyncRoutes: AsyncRoutes = {
  'Referenz': require('es6-promise-loader!./+Referenz/referenz.component'),
  'TestApp': require('es6-promise-loader!./+Referenz/testApp/testApp.component'),
  'Test3': require('es6-promise-loader!./+Referenz/test3/test3.component'),
};

TestApp に移動すると、browser_adapter.js:84 Cannot read property 'path' of undefined からエラーが発生します。これを行う正しい方法は何ですか?

また、非同期読み込みのコンポーネント名は、アプリケーション全体で一意でなければならないのでしょうか?

4

1 に答える 1

0

次のブログ投稿 AsyncRoute with Webpack を参照してください。

以下のコードを実装してください

[
  new AsyncRoute({
      path: '/'
      , name: RouterService.CONTROL_CENTER_ROUTE
      , loader: () => new Promise((resolve: any) => {
          (<any>require).ensure(['control-center.component']
          , (require: any) =>
            resolve(require('control-center.component').ControlCenterComponent));
      })
      , useAsDefault: true
    })
  , new AsyncRoute({
    path: '/login'
    , name: RouterService.LOGIN_ROUTE
    , loader: () => new Promise((resolve: any) => {
        (<any>require).ensure(['login.component']
        , (require: any) =>
          resolve(require('login.component').LoginComponent));
    })
  })
];
于 2016-08-19T20:22:08.720 に答える