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 路径所代表的路由。
我使用默认路径定位策略在 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 路径所代表的路由。