当我使用浏览器直接导航到应用程序重新启动的路线时,它会将我带到正确的页面/组件。 例如,当我浏览按钮时,它会直接将我带到那里,而无需重新启动应用程序。
这是预期的行为吗? 我该如何防止这种情况?
问题是我们使用身份服务器进行身份验证。它需要一个回调网址,它被视为直接浏览器导航和应用程序重新启动。
我们的app-routing.module如下所示:
const routes: Routes = [
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent, canActivate: [RouteGuardService] },
{ path: 'users', component: UsersMainComponent},
{ path: 'vendors', component: VendorMainComponent},
{ path: 'invoices', component: InvoicesMainComponent},
{ path: 'offers' , component: EsdMainComponent},
{ path: 'settings' , component: SettingsMainComponent},
{ path: 'callback' , component: CallbackComponent},
{ path: 'createvendor' , component: CreateVendorsComponent, canActivate: [RouteGuardService]},
{ path: 'customerdashboard' , component: CustomerDashboardComponent},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: [RouteGuardService]
})
export class AppRoutingModule { }
回调路径是身份服务器的回调网址。
答案 0 :(得分:1)
是的,这是预期的行为。当您使用Angular应用程序中的按钮进行路由时,只需使用pushState
修改历史as described in the docs(在底部)。
当您进行直接导航时,您将获取index.html
,它将引导应用程序,然后应用程序将使用当前URL来确定要显示的组件。
The answer to this question希望涵盖如何解决您的问题。