问题标签 [angular-router-events]

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

angular - 如何查找页面是否在 Angular 中重新加载/刷新或导航

我必须查找页面是否由于某些路由而被刷新或加载。

我认为可以通过路由事件来使用 AngularRouterNavigationEnd事件。subscribe

有谁知道该怎么做?

请不要纯javascript解决方案。

0 投票
1 回答
53 浏览

angular-ui-router - 我无法在 Angular 组件类中注入路由器

我正在使用融合图表,并且我的功能需要在触发特定事件时重定向到新页面。我已经成功创建了事件处理程序。但是,无法从事件处理程序中访问路由器变量。

我在组件类中包含了角度路由器,并在构造函数中注入了路由器。

我的代码看起来像这样

调用dataPlotClick事件时出现此错误

谁能告诉我哪里出错了?

0 投票
1 回答
82 浏览

angular - 角度重新加载组件不起作用

我只是想重新加载组件而不刷新页面。

这是代码:

在我的 html 中,我有一个按钮可以通过再次导航到 url 来重新加载组件。如果我错了请指教

当我单击按钮时,由于组件重新加载,它应该更新时间。但是每当我点击链接时,都不会及时更新。

任何人都可以建议我如何在需要时重新加载组件而不重新加载我的窗口(窗口重新加载会杀死我的身份验证信息)。

现场演示

0 投票
4 回答
3409 浏览

angular - 升级到 Angular 11 后的延迟加载路由问题

我有一个顶级路由器,可以延迟加载子路由功能模块,升级到 Angular v11.0.1 后它已停止正常工作。

在 ng11 中的路由器事件中注销,功能模块被加载,并且RouteConfigLoadStartRouteConfigLoadEnd被正确的子路由器配置触发,但RoutesRecognized未被调用。如果我第二次单击链接(不是routerLink),所有事件都会正常触发并加载相应的组件。

澄清一下:这不仅仅是链接的问题。它也不适用于初始页面加载,除非我转到不同的路线(第一次也不会加载),然后返回原始路线

此设置在 Angular v10.2.3 中正常工作(即单击并在初始加载时)

应用路由模块:

仪表板路由模块

应用模块

应用组件模板

我很乐意提供任何可能有助于深入了解的其他详细信息。提前致谢。

0 投票
1 回答
84 浏览

angular - rxjs 和角度路由器事件:首次发出后将布尔值设置为初始值

如果触发了角度路由器事件,则下面的此函数应返回 true。

它工作正常,但它也应该在事件触发后再次重置初始值(false)所以我基本上想在它第一次发出 true 后将布尔值设置回 false(当路由改变时)(对不起我的英语不好,我希望你明白我的意思)

0 投票
2 回答
300 浏览

angular - 以角度为 router.events.subscribe 中的“ActivationEnd”事件编写单元测试

我需要帮助才能为router.events.subscribe. 我曾经ActivationEnd使用具有应用程序所需属性的快照对象。路由器没有其他事件提供这些,所以我必须坚持这一点ActivationEnd。但是我没有得到任何关于如何模拟这个快照对象的信息。

下面是我的代码片段。

你能帮我做些什么来实现这个或任何替代方案的单元测试吗?

问候, 阿尔佩什

0 投票
2 回答
39 浏览

angular - 如果命名路由器出口具有活动路由,则隐藏元素

我们目前正在开发一个 Angular 13 应用程序,该应用程序分为几个独立的模块,由不同的团队维护,每个模块代表由其自己的微服务支持的不同应用程序的 UI。这些模块可以依赖于我们的“SharedModule”,但不能反过来。

现在,我们要实现一个“帮助中心”,它由一个浮动在右下角的问号按钮组成,如果单击它会为当前加载的页面提供帮助。问题是,我们希望将每个模块的帮助中心页面的内容保留在该模块中,此外,有些模块不需要帮助中心页面。

我们当前的解决方案在我们的主布局中添加了一个组件:

app-help组件有说浮动按钮,

打开一个材质对话框,router-outlet里面有一个命名:

在每个模块中,团队现在可以实现使用命名的路由router-outlet

它根据当前加载的 url 在 Dialog 内“注入”模块 HelpComponent 。

这工作得很好,但是,我们有一个悬而未决的问题:

如果路由器插座是空的,即如果您在不提供帮助的页面上,我们如何隐藏浮动按钮?

我相信最简单的解决方案(即在模块内用最少的代码管理东西的解决方案)是监听内部的路由器事件HelpComponent,例如NavigationEnd,然后找出是否有“帮助”的“活动”路由 -router-outlet并相应地设置可见性。(类似于RouterLinkActive-Directive)

但是,我无法找到如何从Router-Framework 中检索此信息。

当然,我也很欣赏有关如何以不同方式解决问题的想法。

0 投票
0 回答
14 浏览

angular - 刷新当前页面后如何以角度2获取当前路线自定义数据