Polymer 聚合物,更改链接应用程序路线元素上的路线

Polymer 聚合物,更改链接应用程序路线元素上的路线,polymer,polymer-1.0,Polymer,Polymer 1.0,我在一个具有以下结构的项目上使用来自的应用程序路由元素: 包含以下代码的my app元素: <app-location route="{{route}}"></app-location> <app-route route="{{route}}" pattern="/:page" data="{{routeData}}" tail="{{subroute}}"> </app-route> <iron-pages selecte

我在一个具有以下结构的项目上使用来自的应用程序路由元素:

包含以下代码的
my app
元素:

<app-location route="{{route}}"></app-location>
<app-route
  route="{{route}}"
  pattern="/:page"
  data="{{routeData}}"
  tail="{{subroute}}">
</app-route>

<iron-pages selected="[[page]]" attr-for-selected="name">
  <store-main-page 
    name="loja" 
    route="{{subroute}}" 
    categories="[[categories]]">
  </store-main-page>
  ...
</iron-pages>
...
因此,访问
/
路径将显示欢迎页面,访问
/loja/categoria
我的应用程序
将调用
商店主页
,该主页将调用
类别页面

我的问题是,我想在显示
商店主页之前对用户进行身份验证,如果用户未经身份验证,请将其重定向到
/
上的欢迎页面。有没有一种方法可以使用
应用程序路径

我发现使用
approute
更改页面的唯一方法是调用

this.set('route.path', 'path');
但这在链式路由上不起作用,在我的情况下,这将导致重定向到
/loja/
路径,这不是我想要的


如何更改父元素上的路由?这可能吗?

我刚刚发现
应用程序位置
只是
铁位置
应用程序路线
之间的接口

因此,我解决了向子元素添加
iron location
并更改其
path
属性的问题

确切的代码是:

  <iron-location id="ironLocation"></iron-location>
...
</template>

<script>
...
  attached: function() {                    
    if (!userAuth()) {            
      this.$.ironLocation.set('path', '/');            
    } else {
      ...
    }                                      
  }
...

...
...
附加:函数(){
如果(!userAuth()){
此.$.ironLocation.set('path','/');
}否则{
...
}                                      
}
...
我不知道这是否是一个理想的解决方案,但它是有效的

  <iron-location id="ironLocation"></iron-location>
...
</template>

<script>
...
  attached: function() {                    
    if (!userAuth()) {            
      this.$.ironLocation.set('path', '/');            
    } else {
      ...
    }                                      
  }
...