问题标签 [angular4-router]

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 投票
7 回答
15698 浏览

angular - 使用相同的 URL 参数重新加载 Angular 4+ 路由

我一直在对重新加载 Angular 4+ 路由进行一些研究,看起来首选方法是改为监听组件内的 URL 参数更改并在那里重新初始化组件。

我遇到的问题是在 URL 相同(包括参数)的情况下,试图找到一种 DRY(不要重复自己)方法来使其跨多个组件工作。在 AngularJS 中,使用 UI-router 很简单。

用例:

我有一个可以“浮动”在任何路线上方的通知面板,当单击通知时,它需要转到与之相关的内容 - 这可以是许多不同类型的内容。

例如:/posts/:id/groups/:id/users/:id

如果用户已经在查看该内容,它不会重新加载和刷新以反映通知的消息。即“John Doe 评论了您的帖子”(用户可能正在查看该帖子的过时版本)或“Jane Doe 接受了您加入某个组的请求”(用户可能正在查看该组的访客视图)。

window.location.reload()当检测到路由相同并且有效时,我确实考虑过使用,但由于它导致的开销(角度重新初始化、身份验证检查、套接字重新连接等),这是非常不可取的。

任何建议将不胜感激!

0 投票
1 回答
65 浏览

angular - 子路由中的参数

在我的 Angular 4 应用程序中,我的路由如下:

ticketBundles/:code/copyticketBundles/:code

如何路由到此特定视图以及如何检索正确的代码?这两个页面不同,所以我需要加载不同的模块。

我有这样的路线:

如何路由到子组件?

我知道查询参数 this.router.navigate(['/ticketBundle', this.code , {action: 'copy'}]); ,但我不希望路径格式如下: /ticketBundle/1;action=copy

0 投票
2 回答
544 浏览

angular - 子路由的角度 4 路由问题

在我的 Angular 4 应用程序中,我的路由有一些问题,可能我错了,目前问题出在这样的路由上path: ':code/copy',我可以正确路由到这个组件,但是当我在里面时,如果我重新加载页面, angular 无法加载 css 文件。

在我的 app.routing 中,我有一条路径:

而ticketBundles的结构是这样的:

票包

所以在我的ticket-bundle.routing 我有:

如果我小时候走这条路,path: ':code/copy' 我怎么能找到它?因为如果我这样做,它就无法匹配任何路线。要在某些组件中路由,在 ticket-bundlelist.component 我做:this.router.navigate(['/ticketBundles', code])

如前所述,目前我只对这条路线有一个问题::code/copy那么我怎样才能更正路由结构以使其正常工作呢?

0 投票
1 回答
959 浏览

asp.net-mvc - 带有 asp.net mvc 的 Angular 4 路由(共享布局)

我正在使用 angular 4 的 asp.net mvc 构建一个应用程序。我有一个共享布局,其中包含我页面的所有链接,它是 .cshtml 。当我提供一个将使用角度路由的链接时。但是当我单击该链接时,它不起作用并且页面不显示。

我共享的布局链接代码:

这是我的家庭组件

这是应用程序路由模块:

0 投票
0 回答
1361 浏览

angular - Angular 4 动态路由 JSON

我打算通过动态加载路线JSON。使用下面的代码ngOnInit

getRoutes 方法从 JSON 文件中读取,

但得到错误。

ERROR 错误:未捕获(在承诺中):错误:无法匹配任何路由。网址段:

这是通过参考这个 StackOverflow, 角度 2 延迟加载 - 来自服务器的路由来完成的

我正在尝试实现类似于此处提到的内容, https://github.com/angular/angular-cli/issues/4234

但是注册为代码的一部分(硬编码)可以正常工作。

0 投票
1 回答
517 浏览

angular - Angular4路由父>子:导航回父时运行的钩子?

假设我有两个组件及其各自的路线:

  • 父组件/parent
  • 子组件/parent/child

当路由器被告知从子视图导航到“../”时,我正在寻找一种在父节点上触发方法的方法。

我寻找相当于 Ionic 的钩子“viewDidAppear”:

  • 它尚未初始化,因为它仍在导航堆栈中
  • 它刚刚再次出现在前台,应该会发生一些刷新

感谢您的关注,

0 投票
1 回答
73 浏览

angular - 如何设置路线偏好?

我的 Angular 4 应用程序中有多个app.routing.ts文件。有什么方法可以设置一个文件而不是另一个文件的路由首选项?

0 投票
1 回答
280 浏览

angular - Angular 2+ 连续路由参数;最后一个无组件

这里我有一个路由路径,后跟两个路由参数,路由看起来像section/sectionId/dashboardId

我需要的是向它添加第三个参数,它是无组件的。我需要将它用作 ID 作为可以传递给我的组件之一的参数。所以我尝试了这个:

我收到了一个拒绝承诺,上面写着“必须提供以下内容之一:组件、redirectTo、children 或 loadChildren”。

所以我添加redirectTo: ':dashboardId':dashboardParam子路由,我得到“无法重定向到':dashboardId'。找不到':dashboardId'。”

如何添加第三个参数而不出现错误?

0 投票
1 回答
203 浏览

angular - 如何替换 Angular 4 中的旧选择器内容或将其重定向到全新页面

我在 Angular 4 中有一个索引页面,登录后,我想替换旧页面内容或至少将其重定向到仪表板。在索引页面上有类似关于我们的内容,在仪表板上有自定义。

我已经尝试过,我认为互联网上的每一件事都像:

0 投票
1 回答
995 浏览

angular - Angular 4 - 延迟加载 - 模块路由也不起作用

我的问题是,子路由器不起作用。应用程序模块加载 DashboardModule (并且标题也将被显示)。问题从这里开始。标头中的路由器链接不想加载其他组件。我想要的是 ?路由器链接显示路由器插座之间的“子”组件。感谢帮助。

应用程序路由.module.ts

app.module.ts

app.component.ts

仪表板.module.ts

仪表板-routing.module.ts

仪表板.component.html

header.component.html