根据不在哈希值上的路径定义路由

时间:2016-07-29 21:34:05

标签: aurelia aurelia-router

Aurelia路由器映射hash的路由。

http://subdomain.hostname.tld/pathA/pathB/pathC?queryKey=queryValue#hash

我们如何根据pathA/pathB/pathC值来定义Aurelia路线?

2 个答案:

答案 0 :(得分:4)

这是文档中的一个示例。但是为了使#hash工作,你需要将config.options.hashChange指定为false:

import {Redirect, NavigationInstruction, RouterConfiguration} from 'aurelia-router';

export class App {
  configureRouter(config: RouterConfiguration): void {
    config.title = 'Aurelia';
    config.options.pushState = true;

    config.options.root = '/';
    config.options.hashChange = false;

    config.map([
      { route: ['welcome'],    name: 'welcome',     moduleId: 'welcome',      nav: true, title:'Welcome' },
      { route: 'flickr',       name: 'flickr',      moduleId: 'flickr',       nav: true, auth: true },
      { route: 'child-router', name: 'childRouter', moduleId: 'child-router', nav: true, title:'Child Router' },
      { route: '',             redirect: 'welcome' }
    ]);
  }
}

您的目的的重要部分是这两个:

// switch from hash (#) to slash (/) navigation
config.options.root = "/";
config.options.hashChange = false;

答案 1 :(得分:2)

您可以设置推送状态。这在我们的文档中进行了讨论:http://aurelia.io/hub.html#/doc/article/aurelia/router/latest/router-configuration/2