查询字符串参数中的句点中断Aurelia路由

时间:2016-12-27 09:50:42

标签: aurelia aurelia-router

我正在尝试将电子邮件地址作为查询字符串参数传递给Aurelia路线。

网址如下:http://localhost/some/route?email=john@doe.com

但是,似乎网址中的(句号)会破坏Aurelia路线,从而导致 404

如果我删除了点,路线加载就好了。

任何想法导致了什么?我很惊讶我找不到任何关于它的信息,在路线中有一段时间应该相当普遍吗?

谢谢!

编辑:似乎这可能不是Aurelia问题,而是ASP.NET MVC问题:Dots in URL causes 404 with ASP.NET mvc and IIS

1 个答案:

答案 0 :(得分:1)

似乎可以正常使用如下的基本设置。我和最新的Aurelia CLI(v0.23)一起制作了这个。在此设置中有三个文件:视图(html),视图模型(ts)和路径(app.ts):

<强>视图/编辑dots.html

<template>
    <p>email: ${email}</p>
</template>

<强>视图/编辑dots.ts

export class EditDots {
    public email;

    activate(params: any) {
        console.log('here are *all* your parameters: ', params);
        this.email = params.email;
    }
}

最后,路线配置(在我的情况下 app.ts ):

import { Router, RouterConfiguration } from 'aurelia-router'

export class App {

    router: Router;

    configureRouter(config: RouterConfiguration, router: Router) {
    config.title = 'Stack';
    config.map([
        { route: ['', 'home'], name: 'home', moduleId: './views/home', nav: true, title: 'Home' },
        { route: 'dots/:id', name: 'edit-dots', moduleId: './views/edit-dots', nav: false, title: 'Create a dot' }
    ]);

    this.router = router;
    }
}

当我使用此设置导航到http://localhost:9001/#dots/42?email=harry@potter.com时,它会整齐地显示电子邮件地址。当然,我可以删除'42',它仅用于演示目的。

最后请注意,您的示例网址似乎没有使用#-sign。如果这是故意的,您可能想要提供有关配置的更多详细信息。否则,是否有助于添加它?

也许这对你有帮助吗?