在我們的應用中,我們有多個路由定義。我認爲我們搞砸了一些東西。 我們無法手動編寫url並獲取要加載的正確組件。我們每次都重定向到/ login,然後在用戶登錄後重定向回/賬戶。Angular2路由通過每個url登錄
您是否看到我們的路由有一些可能的改進?我猜這不是很有效率,而且「製作精良」。我們通過自己的路由路徑燒燬了大腦,並欣賞外部觀點。
祕密是我們的核心應用程序,我們只需向用戶顯示一個祕密請求表單。
例如,試圖訪問/帳號/祕密/重定向方面我們登錄然後回到帳戶,因爲用戶正在登錄...
這是我們的路線:
app.routing.ts
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { AccountComponent } from './account/account.component';
import { accountRoutes } from './account/account.routes';
import { CanActivateViaAuthGuard } from './login/services/auth-guard.service';
const appRoutes: Routes = [
{ path: '', component: LoginComponent },
{ path: 'login', component: LoginComponent },
{
path: 'account',
component: AccountComponent,
canActivate: [CanActivateViaAuthGuard],
children: accountRoutes
},
// otherwise redirect to home
{ path: '**', redirectTo: '/' }
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
第一側問題:在''路線上,我們是否應該重定向到登錄,而不是直接調用LoginComponent?
./account/account-routes.ts
import { Routes } from '@angular/router';
import { DashboardComponent } from './dashboard.component';
import { SecretComponent } from './secret/secret.component';
import { secretRoutes } from './secret/secret.routes';
export const accountRoutes: Routes = [
{ path: '', component: DashboardComponent },
{ path: 'secret', component: SecretComponent, children: secretRoutes },
// otherwise call DashboardComponent
{ path: '**', component: DashboardComponent }
];
最後,
帳戶/祕密/ secret.routes.ts:
import { Routes } from '@angular/router';
import { SecretFormComponent } from './secret-form.component';
import { SecretTermsComponent } from './secret-terms.component';
import { TermsGuard } from './services/terms-guard.service';
export const secretRoutes: Routes = [
{
path: '',
redirectTo: 'form'
},
{
path: 'form',
component: SecretFormComponent,
canActivate: [TermsGuard]
},
{ path: 'terms', component: SecretTermsComponent }
// otherwise redirect to form
{ path: '**', redirectTo: 'form' }
];
我只是嘗試這樣做,並導航到'/#/帳號/祕密/ terms'重定向我'#/ login'然後'#/ account' 。所以我有與哈希相同的問題。我在本地主機上運行,並通過部署在heroku上給出了相同的結果。 – BlackHoleGalaxy