angular - 父组件中的 Angular ActivatedRoute 参数订阅仅触发一次
问题描述
我有一个容器组件AdminComponent
,它有不同的孩子:
{
path: ":company/admin",
component: AdminComponent,
children: [
{ path: "", component: LoginComponent },
{ path: "account", component: AccountComponent, canActivate: [RedirectGuard] },
{ path: "detail", component: AdminlayoutsComponent, canActivate: [RedirectGuard] }
]
}
但是我的路线订阅只触发一次,而不是在路线更改时触发:
export class AdminComponent {
constructor( private activatedRoute: ActivatedRoute ) {
this.activatedRoute.params.subscribe((params: Params) => {
console.log("####params", params);
});
}
}
如何在父组件中的每次路由更改时触发路由更改事件?
解决方案
事件不会被触发,因为:path: ":company/admin",
只有路径的第一部分是参数。正确的事件监听器是:
router.events.subscribe((val) => {
// do stuff
)};
推荐阅读
- java - 如何使用java从像“abc#{xxxx}def#{yyyy}ghi”这样的字符串中获取像[“#{xxxx}”,“#{yyyy}”]这样的字符串数组?
- angularjs - 如何在 Ionic 1 中单击按钮时清除输入字段
- ios - 我可以将不同客户端的 IOS 应用程序发布到一个帐户吗?
- elixir - Ecto 3 - 在自定义 CLI 任务中启动 Repo
- python - Keras 信号处理模型
- jquery - 从 Jquery 数据表中清除自定义过滤器
- c++ - 使用 Windows 中的 GetKeyName() 函数在 C++ 中即时切换键盘布局
- sql - 为什么我的临时表不会填充数据,但其中的 select 语句会?
- node.js - ReferenceError: [tablename] 未定义 | Node.js、Express、Axios、PostgreSQL
- c# - 如何确保用户不会尝试输入已经存在的主键 ID?