我已经实现了一个SearchComponent,用户可以在其中修改搜索词和构面等参数,以便过滤掉结果。我希望使用当前选定的参数更新网址,以便用户可以为链接添加书签或电子邮件。
我的问题是将网址更新为包含参数。我知道我应该使用Location
服务,特别是go()
方法,但我似乎无法弄清楚使用哪种方法来获取参数集合(数组或JavaScript对象)并根据当前LocationStrategy
将其转换为格式正确的查询字符串。我是否应该遍历集合并直接连接值以构建单个字符串?
代码段
发布后我继续玩API。据我了解,使用HashLocationStrategy
并给出以下网址
#/search
this.location.path(false)
的输出是
/search
(作为旁注,this.location.path(true)
的输出也是 /search
)
当我使用Routing
将网址更改为
#/search;searchTerms=ftp
this.location.path(false)
逻辑(种类)的输出变为
/search;searchTerms=ftp
我有几个值得关注的问题
path()
返回的值并将其拆分或获取;
字符的索引,以便重新使用非参数部分? 最终,在我看来,基于组件中的更改更新路径的组件似乎是非常常见的用例,但API 似乎使它变得非常不方便且手动过程非常丑陋。我希望我错过了一些东西......
答案 0 :(得分:0)
我的意思是,如果您真的想采用其他方法,可以使用encodeURIComponent(btoa(JSON.stringify(object)))
生成查询字符串,
JSON.parse(atob(decodeURIComponent(string)))
让它回到对象中......
但正如你所说,我推荐循环播放。