在我的应用程序中,有多个链接,其中我有一些links
与相同的route
但与不同的query parameters
.
比如说,我有这样的链接:
.../deposits-withdrawals
.../deposits-withdrawals?id=1
.../deposits-withdrawals?id=2&num=12321344
当我处于上述路线之一并且本地化为上述另一条路线时,路线不会改变。甚至没有任何类似的功能ngOnInit
or ngOnChanges
被调用。我已经更改了参数queryParameters
to matrixParameters
但没有成功。我浏览了很多链接和答案。但是,他们都没有解决我的问题。帮我看看如何解决这个问题。
谢谢...
EDIT:
<button routerLink="/deposits-withdrawals" [queryParams]="{ type: 'deposit' ,'productId': selectedBalance.ProductId}" class="wallet-btns">DEPOSIT {{selectedBalance.ProductSymbol}}</button>
<button routerLink="/deposits-withdrawals" [queryParams]="{ type: 'withdrawal' ,'productId': selectedBalance.ProductId }" class="wallet-btns">WITHDRAW {{selectedBalance.ProductSymbol}}</button>
我曾经遇到过这个问题。你能贴一些代码,或者你尝试过的解决方案吗?
我会给你一些对我有用的东西,但你最好给我一些更多的细节,以便我可以提供帮助。
假设我们在这里:some_url/存款-取款我们希望导航,仅更改参数。
let url = "id=2&num=12321344"
this.router.navigate(['../', url], { relativeTo: this.route });
希望能帮助到你 :/
=====================================EDIT===================================
您必须检测查询参数已更改。为此,您可以在组件的构造函数中添加一个侦听器来监听 queryParameters 的变化。这可以使用您的router这边走 :
constructor(route:ActivatedRoute) {
route.queryParams.subscribe(val => {
// put the code from ngOnInit here
});
}
添加此侦听器来检测查询参数更改意味着您必须将代码从 ngOnInit 函数移动到此侦听器。每次您导航时,它都会被调用。
对于导航,您可以使用 html 导航或 ts 导航。如果你希望它是 html 格式,你可以使用:
<button routerLink="/deposits-withdrawals" [queryParams]="{ type: 'withdrawal' ,'productId': selectedBalance.ProductId }" class="wallet-btns">WITHDRAW {{selectedBalance.ProductSymbol}}</button>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)