Angular 2:如何在加载时导航初始路由路径

Angular 2: how to navigate initial route path on load

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

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

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

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

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

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