问题标签 [router-outlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
245 浏览

angular5 - 即使 url 正确,子路由中的 Angular5 路由器插座也不会一致地呈现组件

我的一个模块中有一个嵌套路由对象,其中包含用于子路由的路由器插座:

MeetingsListComponent 有一个带有星期几的选项卡菜单,并且对于每一天,它都将会议列表呈现为手风琴元素。如果用户打开手风琴,MeetingsListComponent 的嵌套路由器出口将议程点列表呈现为数据表:PointsListComponent。如果用户点击数据行,PointComponent 应该以一个议程点的详细视图呈现:

发生以下情况:浏览器中的 url-path 从 切换:

哪个是对的。

但奇怪的是,PointComponent 只是“有时”呈现。如果我单击菜单选项卡并且今天或明天更改了数据集,则会呈现数据表,但是通过单击行,URL 会更改,而 PointComponent 不会在路由器插座中呈现。

但是,如果我在选项卡菜单中转到某天,单击同一组件(可数据行)会呈现详细视图,即路由器插座中的 PointComponent。没有什么不同,就是同一个组件填充了其他数据,仅此而已。

因此,路由器导航事件似乎正常工作,但路由器插座没有这样做:

这是一个关于路由错误的简短视频

我需要深入了解这个问题。

0 投票
1 回答
1856 浏览

angular - 如何使用Angular 5将两个路由器插座用于同一路径

我有以下模板AppComponent

我想在两种情况下使用这个模板:

  • 当我导航到时/page1,我希望menuoutlet 包含Menu1Component并且mainoutlet 包含Main1Component
  • 当我导航到时/page2,我希望menuoutlet 包含Menu2Component并且mainoutlet 包含Main2Component

我不明白孩子和命名的网点是如何工作的。我在模块导入中的路线应该是什么?

我使用 Angular 5。

0 投票
1 回答
53 浏览

angular - 两个 Angular 子路由之间的导航

我有以下路线:

  • 如何在briefs/brief/XXX/使用之间导航this.router.navigate(...)?我试过this.router.navigate(['brief', id]);但我收到以下错误:Error: Cannot activate an already activated outlet Error: Cannot activate an already activated outlet.

  • 如何将所有未定义的路径重定向到briefs/

我使用 Angular 5。

0 投票
2 回答
592 浏览

angular - 检测从命名路由器出口中的组件返回的导航

我在路由器插座中显示了一个A 组件,在其中我有另一个B 组件,它有一个命名的路由器插座,我在其中显示另一个C 组件

在这个C 组件中,我执行验证,在此之后,我想回到A 组件重新加载它(执行 ngOnInit 或任何方法)。

我已经尝试过使用不同的方法,例如导航、navigateByUrl 和 Location.back()。问题是A 组件永远不会被销毁,因此它永远不会执行 ngOnInit 方法。

有人知道我该如何解决这个问题?谢谢!

0 投票
0 回答
419 浏览

angular - 使用多个 router-outlets 和 routerLink 时无法匹配路由

我无法获得在我的 Angular 2 应用程序中工作的链接。

我的页面由两部分组成:标题和下面的内容。这两个部分由每个部分的路由器插座建模。当我单击链接时,通常我想更改标题和内容。因此,我尝试使用 a routerLink并为每个出口定义链接位置,例如<a [routerLink]="[{ outlets: { primary: '/content', header: '/header' }}]">link</a>.

不幸的是,该链接不起作用。在控制台上,路由器抛出以下错误:

另外,我想知道链接是否被正确解析。检查 HTML 时,链接如下所示:<a ng-reflect-router-link="[object Object]" href="//content(header:/header)">link</a>

我想知道我做错了什么,感谢您的帮助!

这是设置:

app.module.ts

app.component.ts

应用程序路由.module.ts

链接/link.component.ts

标头/标头.component.ts

内容/内容.component.ts

我使用 Angular 的 5.2.8 版本。

0 投票
1 回答
64 浏览

angular - Angular 2 - Router-Outlet 不是已知元素

所以,我已经对这个主题进行了很多搜索,但我找不到这个错误。<router-outlet> is not a known element当我尝试实现路由器时出现错误。

这是我的app-routing.module.ts

我的app.module.ts

这是我的模板:

一切似乎都很好,当我进行搜索时,我似乎完全有我应该做的事情来让它工作。

谢谢 !

0 投票
0 回答
199 浏览

angular - Angular2 命名路由出口,带有延迟加载的路由

我的主要路由是这样的:

然后我的routeA模块路由是这样的:

我的SearchComponent模板就像:

我想要的是加载routeA模块作为主路由的默认路由,并且在routeA模块内部特色路由是我的默认路由,它作为路由参数而不是:listType,并且featured默认选择选项卡。但是当我点击search-box组件的搜索按钮时,我应该导航到search路由并filterResultComponent加载,我想要做的是:1-在路由器插座ListComponent内显示选项卡内容jobList,其他组件应该在“searchResult”插座内,我应该隐藏“ListComponent”和选项卡。我应该如何用路由器插座做到这一点?

0 投票
2 回答
4441 浏览

angular - Angular,如何阻止与父组件的键盘交互

环境

我的 Angular 应用程序上有一个很大的组件树,有多个路由出口来显示每个级别的特定组件。最深层次是管理某些信息的模式。

问题

如果您可以看到它(父组件),我可以阻止通过鼠标从子组件到父组件事件的交互,但是当我使用键盘时,我可以导航到父组件并在所有父组件中选择选项零件

问题

如何防止这种行为?

0 投票
1 回答
4090 浏览

angular - Angular:如何使用多个路由器插座?

我有一个这样的组件

主页:

测试版模板:

可能的场景是: 当你在首页点击BETA按钮时,会在首页调出router-outlet beta模板。但是 beta 模板中的 router-outlet 是空的。当我点击 beta 模板中的链接时,它会带来组件。

单击主页上的 BETA 链接时,beta 页面中的 router-outlet 不会出现空白,而是单击了实际传入的组件。

0 投票
1 回答
499 浏览

angular - 从同一个路由器插座链接到另一个组件

我的 Angular 5 应用程序中有多个路由器插座。

其中一个看起来像这样:

我想创建从 NewsComponent 到 CreatePostComponent 的链接(/admin/(admin:news)=> /admin/(admin:new-post)

但这是试图创建路径/admin/(admin:news)/(admin:new-post)(而不是/admin/(admin:new-post).

我应该如何正确地做到这一点?