如何在Angular4中使用lazyload?

时间:2017-04-24 14:02:03

标签: angular angular2-routing

我尝试做

{路径:'选项',loadChildren:' app / options / options.module#OptionsModule'}

每个文件模块,html,js加载完成

我可以正常路线

但是我点击了loadChildren中的链接路径而不是改变了东西

我在根路径中使用 hashbang(#)

我无法写这个 RouterModule.forChild(routes,{useHash:true})

如果你不使用延迟加载,Angular将加载1个路由的所有页面和组件


问题吗
1.如何设置 ChildRouter Hashbang喜欢这个

RouterModule.forChild(路径)

因为RootRouter像这样使用hashbang(#)

RouterModule.forRoot(routes,{useHash:true})?

2.你可以在Lazyload Route loadChildren?

中向我展示代码Angular4.X

------------------------请帮帮我-------------------- ---------
我用这个:https://github.com/varishero/laravel5.4-angular4-ts2

2 个答案:

答案 0 :(得分:0)

假设test.module.ts中有一个名为TestModule的模块位于app / test /,在路由中加载它:

const routes: Routes = [
    { path: 'test', loadChildren: 'app/test/test.module#TestModule'},
];

答案 1 :(得分:0)

您的问题不够明确,但如果您想延迟加载模块, 然后参考以下示例了解延迟加载ordersModule

你的app.route.ts将是

import { RouterModule, Routes } from '@angular/router';

const routes: Routes = [{
    path: 'orders',
    loadChildren: 'app/components/orders/orders.module#OrdersModule'
}]

@NgModule({
    imports: [
    RouterModule.forRoot(routes, { useHash: true })
],
exports: [
    RouterModule
],
declarations: []
})
export class AppRoutingModule { }

和orders.routing.module.ts将是

import { Routes, RouterModule } from '@angular/router';
import { OrderDetailsComponent } from './order-details/order-details.component';
const routes: Routes = [{
   path: 'orderDetails',
   component: OrderDetailsComponent
}];
@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class OrdersRoutingModule { }

现在您可以访问orderdetailscomponet作为localhost:4200 /#/ orders / orderDetails