【问题标题】:@angular/router not rendering the routes properly with parameters@angular/router 没有使用参数正确渲染路由
【发布时间】:2016-05-24 01:59:16
【问题描述】:

我正在使用:
"@angular/core": "2.0.0-rc.1"
"@angular/router": "2.0.0-rc.1"

我正在尝试为我的主页设置多个参数,我的路线是

@Routes([
    {path: '/', component: HomeComponent},
    {path: '/:mode', component: HomeComponent},
    {path: '/:mode/:email', component: HomeComponent}
]);

当我访问 http://localhost:2368/test 时,它可以工作,我得到 RouteParams.params.mode == '测试' 但是,当我尝试通过访问 http://localhost:2368/test/email 添加第二个参数时,我得到:
GET http://localhost:2368/test/js/app.js 404(未找到)
浏览器正在尝试从 test/js url 加载 app.js,这显然不存在,因为 test 被认为是我的第一个参数。

当我尝试添加一个真实的电子邮件地址作为我得到的参数时,我遇到了另一个问题:
无法获取 /test@email.com

任何帮助将不胜感激。

编辑:
由于我的 webpack 配置使用了相对路径而导致的 404 错误。
但是我仍然无法运行带有两个路由器参数的url

【问题讨论】:

  • 那么在修复路径后 404 现在消失了吗?你现在得到什么错误?我猜你的问题是stackoverflow.com/questions/31415052/…
  • 好吧,基本上我需要为一条路线设置多个参数 {path: '/page/:param1/:param2/:param3', component: HomeComponent} 但是当我导航到 page/value1/value2 /value3 我得到:无法匹配任何路由。当前段:'value3'。可用路线:['/page/:param1/:param2/:param3']
  • 这听起来像是一个新路由器错误。你能试着颠倒@RouteConfig()/最后,/:mode/:email第一)中的路线顺序吗?
  • 顺序好像没什么区别,我也试过只有一条路线
  • 如何导航到page/value1/value2/value3

标签: angular angular2-routing


【解决方案1】:

我已经添加了标有箭头的两条线,现在可以使用了。

bootstrap(App, [
    HTTP_PROVIDERS,
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, { useValue: "/" }), <-------- Added
    provide(LocationStrategy, { useClass: HashLocationStrategy }) <-------- Added
    ]).catch(err => console.error(err));

感谢君特·佐赫鲍尔的支持

【讨论】:

    猜你喜欢
    • 2019-02-09
    • 2016-12-19
    • 2018-10-11
    • 2017-12-20
    • 2018-12-17
    • 2020-05-12
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多