是否可以通过更改聚合物中的app-route数据对象来更改URL?如下所述:https://www.polymer-project.org/1.0/toolbox/routing#change-routes
在此示例中,他们使用this.set(' routeData.user',' mary');更改网址。
在我们的情况下它不起作用,我们无法在代码中找到问题。 我们几乎删除了所有代码,只使用了这个app-router配置:
<app-route route="{{route}}"
pattern="/:view"
data="{{routeData}}">
</app-route>
在我们的附加生命周期事件中,我们正在使用它:
attached: function(){
var self = this;
setTimeout(function(){
self.set('routeData.view', 'GNAAA');
});
}
地址栏中的预期网址是
http://localhost:8888/polymer/index.html#/GNAAA
但我们只有
http://localhost:8888/polymer/index.html#/
我们在这里缺少什么。为什么我们不能通过文档中提到的数据对象设置URL?也许这是一个错误?但我们无法在app-route的GutHub Buglist中找到一些东西。
更新:我们还使用iron-location从URL获取查询参数。如果我们删除铁位置所有工作按预期。所以我们目前在github上创建了一个问题。
答案 0 :(得分:0)
尝试在<app-location route="{{route}}"></app-location>
声明之前添加<app-route>
。
或者,如果您更喜欢使用iron-location
,请使用iron-route-converter
:
<iron-location path="{{path}}" query="{{query}}"></iron-location>
<iron-query-params
params-string="{{query}}"
params-object="{{queryParams}}">
</iron-query-params>
<app-route-converter
path="{{path}}"
query-params="{{queryParams}}"
route="{{route}}">
</app-route-converter>
此外,请不要忘记导入所有使用<link rel="import">
标记的组件,否则您的组件将无法正常工作,而不会告诉您。