【问题标题】:Angular 2: how to navigate initial route path on loadAngular 2:如何在加载时导航初始路由路径
【发布时间】:2016-03-22 01:02:47
【问题描述】:

我使用默认路径位置策略在 Angular 2 应用程序中实现了路由。它工作正常,除了在重新加载非默认 URL 路径时,渲染的是与默认路由关联的组件,而不是与路由路径关联的组件。

例如,http://localhost:5000/locator/bycounty 在从服务器重新加载 URL 时将组件显示在 http://localhost:5000(我已将服务器端路由设置为将所有静态路径解析为同一文件)。

这是预期的行为还是我的应用程序行为不端?

【问题讨论】:

  • 您提供的信息不足以诊断问题。
  • 我不是要求诊断问题。我正在尝试确定这是否是 angular 2 路由器的预期行为。你的意思是当页面初始加载时,路由器应该自动从 URL 路径遍历路由?
  • 我的意思是您的问题没有提供足够的信息来讨论它是否是 Angular 或您的代码的错误或功能;-)
  • 也许我的问题表述得很糟糕,因为我打算问一个关于 Angular 2 路由器功能的简单问题。试试这个——它是 angular 2 路由器的内置特性或功能,在页面加载时会自动解析 URL 路径以呈现与匹配路由关联的视图?我问这个是因为我发现路由器在页面加载时忽略了 URL 路径,而是显示了与默认路由关联的视图。
  • 路由器负责解释路径并导航到该路由。如果它导航到默认路由,这可能是因为无法解释传递的路由。这是你的问题吗?

标签: angular angular2-routing


【解决方案1】:

答案是应用程序行为不端。原因是我在初始化时动态设置了基础,而不是使用简单的<base href="/" />

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, { useValue: location.pathname }) // <= BAD
]);

在尝试修复其他路由器问题时,我曾一度从某处复制了 provide(....) 行代码。此行在加载时根据 URL 路径动态设置路由器的根路径。这就是为什么在初始加载时我总是看到默认路由而不是 URL 路径所代表的路由。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多