如何通过app-route元素

时间:2016-11-23 12:58:35

标签: polymer polymer-1.0

是否可以通过更改聚合物中的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上创建了一个问题。

1 个答案:

答案 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">标记的组件,否则您的组件将无法正常工作,而不会告诉您。