Angular 4 延迟加载命名路由器出口不起作用

2024-01-01

我有一个延迟加载的问题,不打算路由到指定的路由器出口。有人可以看看我错在哪里吗?我有一个主页,其中有一个指向“产品”->“默认路由器出口”和“产品详细信息”->“命名路由器出口”的链接。

  <div>
   <div><a [routerLink]="['product']"> Product </a> </div>
   <div><a [routerLink]="['productdetail',{outlets:{productdetail: 'detail'}}]"> Product Detail </a> </div>
  <div> <router-outlet></router-outlet></div>
  <div> <router-outlet name="detail"></router-outlet>
</div>

下面是 plunker 代码。

笨蛋代码 https://plnkr.co/edit/W3nhtAvghzwzWkQOj9N6?p=preview


这是已知错误,您可以跟踪问题here https://github.com/angular/angular/issues/10981#issuecomment-301787482

解决方法或者我们可以说解决此问题的方法是,为您的顶部使用非空路径 如果延迟加载模块中存在辅助(即命名)路由,则为级别路由。

我能看到的唯一缺陷是,在路由中添加了一个额外的 url 段

MainRoutingModule:顶级非空路径(即“path:'load'”)

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

import { MainpageComponent } from './mainpage.component';
import { ProductComponent } from './product.component';
import { ProductDetailComponent } from './productdetail.component';

const childroutes: Routes = [

 { path: 'load', component: MainpageComponent  ,
    children: [ 
      {path: 'product', component: ProductComponent
      {path: 'productdetail', component: ProductDetailComponent,
        outlet: 'detail' 
      },

    ]
 },


];

export const routing: ModuleWithProviders = RouterModule.forChild(childroutes);

const newLocal: NgModule = {
    imports: [RouterModule.forChild(childroutes) ],
    exports: [RouterModule, ],
    declarations: []
};

@NgModule(newLocal)


export class MainRoutingModule { }

MainpageComponent:使用辅助路由的正确语法。

[routerLink]="[{出口:{detail:['productdetail']}}]"

import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'app-main',
  template: `
  <div>

  <div><a [routerLink]="['product']"> Product </a> </div>
  <div><a [routerLink]="[{outlets:{detail:['productdetail']}}]"> Product Detail </a> </div>
  <div> <router-outlet></router-outlet></div>
  <div> <router-outlet name="detail"></router-outlet>

</div>
  `,
  encapsulation: ViewEncapsulation.None,
})

export class MainpageComponent {}

登录组件:

使用 [routerLink]="['mainpage/load']" 加载主模块。

import { Component, OnInit, OnDestroy } from '@angular/core';

@Component({
  selector: 'app-login',
  template: `This is login page place holder <br> <a [routerLink]="['mainpage/load']">Go to Main Page</a>`,

})

export class LoginComponent implements Oninit, OnDestroy {
constructor() {}

ngOnInit(): void {}

}

Demo:https://plnkr.co/edit/0ZpNL3lvbRbexLzQqRZh?p=preview https://plnkr.co/edit/0ZpNL3lvbRbexLzQqRZh?p=preview

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 4 延迟加载命名路由器出口不起作用 的相关文章

随机推荐

  • 将非 ASCII 字符分配给宽字符并使用 printf 打印

    如何将非 ASCII 字符分配给宽字符并将其打印到控制台 这段代码不起作用 include
  • SelectKBest (chi2) 如何计算分数?

    我试图通过将特征选择方法应用于我的数据集来找到最有价值的特征 我现在使用 SelectKBest 函数 我可以生成分值并根据需要对它们进行排序 但我不明白这个分值是如何计算的 我知道理论上的高分更有价值 但我需要一个数学公式或一个例子来计算
  • JMeter 使用 jmx 文件的相对路径上传文件

    我正在 JMeter 中创建一个 HTTP 请求采样器 以自动将文件上传到 http 服务 有没有办法将 通过请求发送文件 中的 文件路径 设置为jmx文件位置的相对路径 是的 这在 JMeter v2 9 中得到了证实 您可以在文件名输入
  • 如何在 SQL Server 2005 Express 中启用全文索引?

    我正在尝试在 SQL Server 2005 Express 中启用全文索引 我在装有 Vista Ultimate 的笔记本电脑上运行此程序 据我所知 标准版本的 SQL Server Express 没有全文索引 我已经下载并安装了 M
  • 从 Rails-geocoder gem 中的控制器获取纬度和经度值

    使用时是否可以在控制器中获取纬度和经度值geocoder https github com alexreisner geocoder宝石在轨道上 目前正在做的获取所有附近位置的操作是传递位置名称 如下所示 event address Eve
  • 在 python 中使用 pandas 检索数据列上的匹配字数

    我有一个df Name Description Ram Ram is one of the good cricketer Sri Sri is one of the member Kumar Kumar is a keeper 和一个清单
  • 提供用于 WhatsApp 链接共享的图像

    当我们分享这样的链接时 如何在我们的网站中添加图片以在 WhatsApp 中显示 2020年标准 只需几个步骤即可获得适用于 PC 和移动设备的 WhatsApp Twitter Facebook 和书签图标的完美预览 如果您喜欢阅读 请前
  • C - 如何实现Set数据结构?

    在 C 中是否有任何棘手的方法来实现集合数据结构 唯一值的集合 集合中的所有元素都属于相同类型 并且有巨大的 RAM 内存 据我所知 对于整数 使用值索引数组可以非常快速且轻松地完成 但我想要一个非常通用的 Set 数据类型 如果一个集合可
  • 在 Iframe 中更改页面的按钮或链接

    我希望在页面中创建一个链接或按钮来更改 iframe 所在的页面 这将是一个本地页面 idreesinc com iframe html 你可以看到我已经在这里 idreesinc com research 非常感谢您的帮助 因为我多年来一
  • 无法运行模拟器 操作无法完成。 (LaunchServicesError 错误 0。)

    我尝试在 Xcode 7 和 swift 2 0 中运行 IOS9 iphone 6 应用程序 但我不能 如果我重置内容和模拟器设置 第一次可以工作 但第二次又失败 我已经清理了应用程序 我已经清理了构建文件夹 我尝试将 NSAllowsA
  • 使用 AuthLogic 保护内容

    我知道这听起来像是一个非常非常简单的用例 我希望确实如此 但我发誓我已经查遍了所有地方 但没有发现任何提及的方法 甚至不是最好的方法 做这个 我对 Ruby Rails 以及与之相关的一切都是全新的 这可以解释为什么lot 我用作学习工具的
  • 使用 Hibernate 持久化长字符串的问题

    在我的 Web 应用程序中 我有一个文本区域 其用户填充的内容最终通过 Hibernate 持久保存到数据库中 我遇到了一个问题 当用户输入超过一定长度时 持久化失败 有没有办法通过 Hibernate Annotations 或在配置中指
  • cpan“Set::IntervalTree”或“Algorithm::ExpectationMaximization”不起作用 - 我在下面解释完整的错误日志

    这里我详细解释一下安装一些 Perl 库时遇到的问题 安装 Set IntervalTree 时遇到问题 我安装了 g 仍然是同样的问题 我安装了 miniconda 并尝试 conda 该包 仍然有同样的问题 这是完整的错误日志 我复制了
  • 禁用 Spring Cloud AWS 自动配置以进行本地开发

    我使用以下 Maven 依赖项 它会自动配置所有必要的参数 使我的项目在 AWS 上运行
  • 从rails日志文件中提取错误信息

    我正在开发 5 个不同的 Rails 项目 另外还重构了一些项目 从旧的 Rails 版本移动到 2 3 从日志文件中提取错误信息的最佳方法是什么 这样我就可以看到所有折旧警告 运行时错误等上 这样我就可以改进代码库了 有没有您可以推荐的服
  • javax.crypto.IllegalBlockSizeException:使用填充密码解密时,输入长度必须是 16 的倍数 [重复]

    这个问题在这里已经有答案了 我在 java 类中遇到解密错误 javax crypto IllegalBlockSizeException Input length must be multiple of 16 when decryptin
  • jQuery 和 PHP 建议答案

    嘿伙计们 有一个表单 用户可以选择他的一些朋友 我很好奇如何实现一个列表 在用户输入朋友的名字时同时进行搜索 当他选择名字时 名字会写在文本框 jQuery 如果用户想要选择多个朋友 当我在数据库中插入姓名时 如何分隔一个输入字段中写入的姓
  • Dart / Flutter:Isolate 顶级函数的异步行为

    哎呀好人 我遇到了奇怪的行为 当异步使用isolate的顶层函数时 你可以找到示例代码HERE https github com iapicca isolates logging 但简而言之 as 隔离的顶级功能这有效 String syn
  • 为什么 Visual Studio 2012 中自动解决冲突默认处于启用状态?

    我们最近安装了 Visual Studio 2012 我正在与我们团队的另一名成员一起开发一个全新的项目 使用 Team Foundation Server 2010 进行源代码控制 我最近注意到我的一些文件在签入时被随机损坏 然后在输出窗
  • Angular 4 延迟加载命名路由器出口不起作用

    我有一个延迟加载的问题 不打算路由到指定的路由器出口 有人可以看看我错在哪里吗 我有一个主页 其中有一个指向 产品 gt 默认路由器出口 和 产品详细信息 gt 命名路由器出口 的链接 div div a Product a div div