当使用`<app-location>`时,如何强制从javascript改变路由

时间:2016-06-06 06:39:10

标签: polymer

我正在使用<app-location><app-route>在我的Polymer应用中导航。我要求我的用户首先登录(如果他们还没有),这是在路由范围之外完成的。因此,一旦登录,或者他们已经登录,该应用程序将从浏览器URL栏中输入的页面开始。

我有一个用户第一次尝试登录的场景,因此需要重定向到另一个页面来填写他们的个人资料。我想用javascript以编程方式做的是在应用程序中推送一个新的URL,以便在登录后将它们重定向到配置文件页面,然后让配置文件页面模拟浏览器后退按钮以返回到最初输入的起始页面。

我如何以与<app-location>兼容的方式做到这一点,假设我没有使用#routing。

1 个答案:

答案 0 :(得分:1)

如果您在<app-location><app-route>之间有双向绑定,则只需将data的{​​{1}}属性更改为配置文件即可。

例如,如果你的设置看起来像这样:

<app-route>

您可以这样做:

  <app-location route="{{route}}"  id="appLocation" use-hash-as-path></app-location>
  <app-route id="appRoute"
        route="{{route}}"
        pattern="/:page"
        data="{{page}}"
        tail="{{tail}}">
  </app-route>

或者,如果this.$.appRoute.data = {page:'profile'} 是绑定在元素/应用中的属性,则只需更新page属性,而后者将更新page属性data通过数据绑定系统,您的<app-route>元素的route属性。