我对如何在最新的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无法读取未定义的属性'path‘得到一个错误。这样做的正确方法是什么?
我还想知道,异步加载的组件名称对于整个应用程序是否必须是唯一的?
发布于 2016-08-20 04:22:09
请参阅下面的博客文章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));
})
})
];https://stackoverflow.com/questions/38736366
复制相似问题