Angular 9 отменить начальный путь и перенаправить - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь отменить начальный путь, например: localhost: 4200 / должен вернуть сообщение об ошибке. Вместо этого я хочу, чтобы моя домашняя страница была доступна только в том случае, если вы перейдете к чему-то вроде localhost: 4200 / tag1 / tag2.

Я смогу захватить данный URL-адрес и установить его в качестве домашней страницы. Я попытался сделать это в модуле маршрутизации приложений, но ничего не загружается или появляется сообщение об отсутствии сегментов.

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {AppRoutes} from '../shared/globals/app-routes';
import {errorComponent} from '../errorComponent.ts'

export const tag1 = document.location.pathname.split('/')[1];
export const tag2 = document.location.pathname.split('/')[2];

const routes: Routes = [
  { path: 'tag1/tag2',
    loadChildren: () => import('../auth/auth.module').then(m => m.AuthModule) },
    { path: '',
    component: errorComponent    },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

1 Ответ

1 голос
/ 05 мая 2020

У вас есть ошибки в модуле маршрутизации.

  • Во-первых: tag1 и tag2 - переменные. Но вы использовали как строку в маршрутах. Это должно быть:
path: `${tag1}/${tag2}`
  • Второе: вам не нужно получать параметры url прямо в модуле маршрутизации. Вместо этого вы можете сделать как показано ниже:
const routes: Routes = [
  { 
    path: '/:tag1/:tag2',
    loadChildren: () => import('../auth/auth.module').then(m => m.AuthModule) 
  },
  { 
    path: '',
    component: errorComponent    
  },
];

Затем в своем AuthPageComponent вы можете получить tag1 и tag2, как показано ниже:

import { ActivatedRoute }  from "@angular/router";

constructor(
  private route: ActivatedRoute
) {
}

ngOnInit() {
  this.route.params.subscribe((params: { tag1: string, tag2: string }) => {
    console.log("tag1", params.tag1);
    console.log("tag2", params.tag2);
  })
}

Для получения дополнительной информации обратитесь к официальному документу do c: Параметры маршрута

...