Angular-通过路由打开模式时,使用复杂url导航



我正在开发一个现有的应用程序,该应用程序有几个带有分页/排序和表格的页面。模式是通过路由打开的,这会导致url类似:http://www.example.com/table;sort=名称,desc/新

有什么办法吗this.router.navigation((生成一个搜索url,好吗?我需要使用this.router.navigation,因为链接是相对于url的。所以routerLink在这里不起作用。

问题是,默认情况下,this.router.navigation会对导致路由失败的url进行编码。

更新:好吧,我找到了答案。一个人可以this.router.navigation(this.route.url,{sort:"name,desc"},"new"],{relativeTo:this.route}(;

必须在基本url中收集参数才能再次传递它们,这很烦人。

我认为这里的选择取决于您是否希望能够直接使用URL引用模态。

如果这是必要的,那么我建议将您的url改革为类似的东西

http://www.yoursite.com/table?sort=name,desc 

当你想把它们引用到模态时,你可以把参数传递到另一个url,就像这样:

http://www.yoursite.com/table/modal?sort=name,desc 

如果要将参数引用回基/表页面,可以通过两种方式解决参数保存问题。如果以前的url是模式链接,您可以监听路由器的更改并复制参数,也可以将html中的routerLink更改为表页面并将当前参数放置在那里。

如果不需要直接引用模态,那么最好将信息存储在服务中,或者将其保存在组件本身中,因为模态可以直接加载在组件上。

最新更新