我已经实现了一个SearchComponent,用户可以在其中修改参数(如搜索项和构面)以筛选结果。我希望使用当前选定的参数更新网址,以便用户可以通过书签或通过电子邮件发送链接。构建具有查询参数的Angular 2地址
我的问题是关于更新URL为,包括参数。我知道我应该使用Location
服务,特别是go()
方法,但我似乎无法弄清楚使用哪种方法来获取我的参数集合(数组或JavaScript对象)并将其转换为适当格式的查询字符串基于当前的LocationStrategy
。我是否应该循环访问集合并直接连接这些值以构建出单个字符串?
代码段
发布这个我继续与API玩耍后。据我了解,使用HashLocationStrategy
并给予下述网址
#/search
的this.location.path(false)
输出
/search
(作为一个侧面说明,中this.location.path(true)
输出也/search
)
当我使用Routing
将url更改为
#/search;searchTerms=ftp
的this.location.path(false)
输出逻辑(种)成为
/search;searchTerms=ftp
我已经关注的几个点
- 如前所述,建立了网址似乎需要我来连接名称值对,而不是提供一个辅助方法来处理它。
- 现在,给定的组件不知道用于实例化所述组件的路由。实际的路由取决于你放在路由器配置中的内容。但现在,为了更新路线,我不能只说“添加这个特定的当前路线”,我实际上需要从当前网址中提取该前缀以用于更新的网址。
- 与#2项目有关,实际上我需要从
path()
返回的值并将其拆分或得到;
字符的索引,以便我可以重新使用非参数部分?
最终,在我的脑海里,更新基于组件内的变化路径组件似乎是一个很常见使用情况尚API 似乎使它非常不方便和难看手动过程。我希望我失去了一些东西......
我正在修改网址的问题不仅仅是建立参数。我更新了这篇文章,以更好地解释关于位置服务和API的所有(相关)问题(或者缺乏......) – Jason