Я хочу знать, как принудительно использовать последнюю косую черту в маршрутизации Angular. Я использую эту методологию для сохранения последней косой черты в приложении Angular, я использовал эту документацию ссылка!
export const contactUsRoutes: Routes = [
{
path: 'contact-us/.', component: ContactUsComponent
}
];
<a [routerLink]="['/contact-us/.']">Contact us</a>
import { Location } from '@angular/common';
// main.ts
const __stripTrailingSlash = (Location as any).stripTrailingSlash;
(Location as any).stripTrailingSlash = function _stripTrailingSlash(url: string): string {
const queryString$ = url.match(/([^?]*)?(.*)/);
if (queryString$[2].length > 0) {
return /[^\/]\/$/.test(queryString$[1]) ? queryString$[1] + '.' + queryString$[2] : __stripTrailingSlash(url);
}
return /[^\/]\/$/.test(url) ? url + '.' : __stripTrailingSlash(url);
};
Это хорошо работает для простых ссылок, однако у меня есть раздел дочерних маршрутов.
const wizardRoutes: Routes = [{
path: 'page-childs',
component: WizardComponent,
children: [
{
path: '',
component: Page1Component,
},
{
path: ':region/.',
component: Page2Component,
},
{
path: ':region/:origins/.',
component: Page3Component,
}
]
}];
// main path: localhost/page-childs/ redirecto to Page1Component
// path Child 1: localhost/page-childs/usa/ show Page2Component
// path Child 2: localhost/page-childs/usa/aaa/ show Page3Component
Дополнительно в WizardComponent у меня есть router-outlet.
У меня проблемы с определением пути «page-childs», потому что мне нужно иметь косую черту в конце, и если я поставлю ее («page-childs/.») в определение, маршруты перестанут работать.
Кто-нибудь знает, как я должен определить это?