【发布时间】:2016-08-08 21:00:09
【问题描述】:
我已经实现了一个 SearchComponent,用户可以在其中修改搜索词和方面等参数以过滤结果。我希望使用当前选择的参数更新 url,以便用户可以添加书签或通过电子邮件发送链接。
我的问题是关于将 url 更新为 include 参数。我知道我应该使用 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
我有几个问题
- 如前所述,构建 url 似乎需要我连接名称值对,而不是提供一个帮助方法来为您处理它。
- 目前,给定组件不知道用于实例化所述组件的路由。实际路由取决于您在路由器配置中放置的内容。但是现在,为了更新路由,我不能只说“将此特定添加到当前路由”,我实际上需要从当前 url 中提取该前缀以在更新后的 url 中使用。
- 与第 2 项相关,我实际上需要获取从
path()返回的值并将其拆分或获取;字符的索引,以便我可以重新使用非参数部分?
最终,在我看来,根据组件内的更改更新路径的组件似乎是一个非常常见的用例,但 API 似乎 使其非常不方便且是一个丑陋的手动过程。我希望我错过了什么......
【问题讨论】: