- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下工具:
在我的 Angular 5 主应用程序中,我有一个 CoreModule 和一个 DashboardModule。在 CoreModule 中,我有以下路线:
import {RouterModule, Routes} from "@angular/router";
import {NgModule} from "@angular/core";
import {LoginComponent} from "./login/login.component";
import {AuthGuardService} from "./services/auth-guard.service";
const routes: Routes = [
{
path: '',
component: LoginComponent
},
{
path: 'dashboard',
canActivate: [AuthGuardService],
loadChildren: '@modules/dashboard/dashboard.module#DashboardModule'
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class CoreRoutingModule {}
当我在我的主应用程序中工作时没问题,但是如果我将 CoreModule 和 DashboardModule 打包在一个带有 ng-packagr 的库中,当我在另一个应用程序中将它们用作 NPM 包时,我在启动时遇到以下错误:
ERROR in No NgModule metadata found for 'DashboardModule'.
有什么想法吗?
最佳答案
Angular 现在支持 src 文件夹外的延迟加载模块。您应该使用 lambda 语法(现在是一种模式)和 JS 导入。
const routes: Routes = [
{
path: '',
loadChildren: async () => (await import('./sdk/sdk.module')).SdkModule
},
{
path: 'layouts',
loadChildren: () => import('@my-lib/layouts').then(m => m.LayoutModule)
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
我遇到了同样的问题。 这是 Angular-cli 上的未决问题。 Angular-cli 不能(今天是 unitl)在 src 文件夹之外“延迟加载”模块。换句话说,您不能从 node_modules 延迟加载。
有一个 Unresolved 问题解释了问题和解决方法。
https://github.com/angular/angular-cli/issues/6373
周围的工作是将您的惰性模块包装在其他本地模块中,然后将本地模块作为惰性模块导入。问题是你应该为每个“外部”模块创建一个代理模块;/另一个问题是你的外部包中不能有“惰性模块”。
dashboard-proxy.module.ts
@NgModule({
imports: [
CommonModule,
DashboardModule <<---- External Module @pkg/admin/dashboard
],
exports: [
DashboardModule
],
declarations: []
})
export class DashboardProxyModule { }
代理路由器路由模块.ts
const routes: Routes = [
{
path: 'dashboard',
loadChildren: 'app/proxy-router/dashboard-proxy/dashboard-proxy.module#DashboardProxyModule' << ---- Proxy
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class ProxyRouterRoutingModule { }
关于来自模块的 Angular 5 loadChildren 路由 -> 未找到 NgModule 元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49574996/
我正在使用 Angular 2 的最终版本,并看到了 loadChildren 的一个很棒的延迟加载功能。 一个简单的例子 export const routes: Routes = [ { pa
我需要有条件地加载路由路径。我在下面尝试过。但它给出了这个错误。你能告诉我如何完成这种任务吗? [ng] ERROR in Cannot read property 'loadChildren' of
在 Angular 应用程序中,我想确定要为指定路径加载哪个模块。这与延迟加载无关。这是关于动态路由配置/确定。 我有一个有 3 种访问权限的应用程序。每个访问都在他自己的模块中。在应用程序加载时,我
Angular in the docs说如下: { path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule', },
我创建了两个关于路由的 loadChildren 和 outlet 导航问题的插件。出于某种原因,在加载的子模块中有一个空的基本路径不适用于导出导航。 在this例如,按“联系人”链接失败。 app-
我想像这样进行 3 级路由:pages>firSTLevel>secondlevel>thirdlevel 但是 loadchildren 不加载 secondlevel.module 的路由。 ur
谁能告诉我component、loadChildren、redirectTo之间的区别? export const ROUTES: Routes = [{ path: '', redirectT
我想延迟加载我的模块,但同时使用 canActivate 保护它。我试过: { path: 'dashboard/vendor', canActivate: AuthGuard, loadChildr
这个问题在这里已经有了答案: How to manually lazy load a module? (2 个答案) 关闭 5 年前。 有没有一种方法可以直接从html中的标签延迟加载组件,比如 ?
我刚刚注意到 Angular 8(即将发布)已弃用“字符串类型路由器 loadChildren”。 ( ticket ) 我是否理解正确,他们指的是...... const routes = [
这个问题在这里已经有了答案: Angular 8 - Lazy loading modules : Error TS1323: Dynamic import is only supported whe
我有一个带有路由器 socket 的根应用程序组件,并且路由是从主模块路由加载的,该路由在其子路由中使用带有 loadchildren 的延迟加载。家庭组件中有一个路由器 socket ,家庭的所有子
在下面的代码中,除了第一个示例中我们需要将 productsModule 导入到文件中之外,这两种延迟加载路由的方式有什么区别? { path: 'products', loadchildren: (
有时我想将关系定义为延迟加载,因为 90% 的时间我不想要子实体,但在某些情况下也有可能立即获得整个层次结构。我不想通过使用命名查询来实现这一点,因为当我转换为例如时父子层次结构很有用JSON 格式。
我正在尝试加载我购买的与 Angular4 一起使用的管理员,但是我在配置项目以使用 Webpack 运行时遇到了一些问题: const routes: Routes = [ { "path"
我正在尝试使用 Angular2 来延迟加载一些模块。我可以让它工作,但是当我将它与 canActivateChild 一起使用时,它会阻止导航但加载模块,我不知道我是否需要做任何其他事情,但我只想加
在我对 Angular 的探索中,我发现了两种在另一个模块中使用一个模块的可能方法。 (引用angular-express-starter project) 方法一:在 imports 数组中声明它。
我在 NPM 中有一个模块功能。我可以这样加载这个模块: import { NgModule } from '@angular/core'; import { Routes, RouterModule
我有这样的东西: const routes: Routes = [ { path: ':path', component: SiteRoot, children: [ { pa
这是鸣叫者。 https://plnkr.co/edit/tsNlmRth4mRzz0svGWLK?p=preview 我在其中创建了两个模块,每个模块包含两个组件和一项服务。我希望服务在模块级别应该
我是一名优秀的程序员,十分优秀!