Angular 是否可以检测查询参数是否已更改?

Angular 是否可以检测查询参数是否已更改?,angular,query-parameters,Angular,Query Parameters,是否可以检测查询参数是否已更改? 我有一个组件,它处理2个查询参数,并根据您提供的参数设置一些变量true或false。问题是,如果我的组件上有queryparameter 1,则qp可以在不离开组件的情况下更改为第二个参数,在这种情况下,我需要不同地设置变量。那么我该如何检测呢?这可能吗?您可以订阅根组件中的参数 构造函数(路由:ActivatedRoute){ route.queryParams.subscribe(p=>console.log(p.myQueryParam));//您也可以

是否可以检测查询参数是否已更改?
我有一个组件,它处理2个查询参数,并根据您提供的参数设置一些变量true或false。问题是,如果我的组件上有queryparameter 1,则qp可以在不离开组件的情况下更改为第二个参数,在这种情况下,我需要不同地设置变量。那么我该如何检测呢?这可能吗?

您可以订阅根组件中的参数

构造函数(路由:ActivatedRoute){
route.queryParams.subscribe(p=>console.log(p.myQueryParam));//您也可以在ngOnInit中执行此操作
}
另见

您也可以在其他路由级别上使用查询参数,但它们称为矩阵参数


另请参见本节末尾

您可以订阅ActivateRoute模块提供的参数observable,以观察查询参数的变化

构造函数(专用路由:ActivatedRoute){
this.route.params.subscribe(
(参数:参数)=>{
log(params['yourId']);
};
)}

即使这是一个必需的用例,我也不明白什么时候有人真的需要angular中的查询参数。为什么你不能将输入传递给coponent@JinsPeter例如,直接链接?@JinsPeter如果,例如,您的整个应用程序中有一些参数要传递(例如,您的url看起来像
mydomain.com/#myParam/myRoute
),并且出于某种原因您拒绝使用全局变量。很高兴听到这个消息。第二部分只是在您不知道查询参数和矩阵参数之间的差异的情况下提供的附加信息。
params
用于路由参数,而不是查询参数。