feat(router): do not support paths starting with /
This commit is contained in:
parent
2773281338
commit
7e12208ca6
|
@ -135,7 +135,7 @@ function match(segment: UrlSegment, route: Route, paths: UrlPathWithParams[]): {
|
|||
lastChild: number,
|
||||
positionalParamSegments: {[k: string]: UrlPathWithParams}
|
||||
} {
|
||||
if (route.path === '' || route.path === '/') {
|
||||
if (route.path === '') {
|
||||
if (route.terminal && (Object.keys(segment.children).length > 0 || paths.length > 0)) {
|
||||
throw new NoMatch();
|
||||
} else {
|
||||
|
@ -143,7 +143,7 @@ function match(segment: UrlSegment, route: Route, paths: UrlPathWithParams[]): {
|
|||
}
|
||||
}
|
||||
|
||||
const path = route.path.startsWith('/') ? route.path.substring(1) : route.path;
|
||||
const path = route.path;
|
||||
const parts = path.split('/');
|
||||
const positionalParamSegments: {[k: string]: UrlPathWithParams} = {};
|
||||
const consumedPaths: UrlPathWithParams[] = [];
|
||||
|
|
|
@ -111,7 +111,7 @@ function processPathsWithParamsAgainstRoute(
|
|||
}
|
||||
|
||||
function match(segment: UrlSegment, route: Route, paths: UrlPathWithParams[]) {
|
||||
if (route.path === '' || route.path === '/') {
|
||||
if (route.path === '') {
|
||||
if (route.terminal && (Object.keys(segment.children).length > 0 || paths.length > 0)) {
|
||||
throw new NoMatch();
|
||||
} else {
|
||||
|
@ -119,7 +119,7 @@ function match(segment: UrlSegment, route: Route, paths: UrlPathWithParams[]) {
|
|||
}
|
||||
}
|
||||
|
||||
const path = route.path.startsWith('/') ? route.path.substring(1) : route.path;
|
||||
const path = route.path;
|
||||
const parts = path.split('/');
|
||||
const posParameters: {[key: string]: any} = {};
|
||||
const consumedPaths: UrlPathWithParams[] = [];
|
||||
|
|
|
@ -55,7 +55,7 @@ describe('recognize', () => {
|
|||
it('should set url segment and index properly (nested case)', () => {
|
||||
const url = tree("a/b/c");
|
||||
recognize(RootComponent, [
|
||||
{ path: '/a/b', component: ComponentA, children: [
|
||||
{ path: 'a/b', component: ComponentA, children: [
|
||||
{path: 'c', component: ComponentC}
|
||||
] },
|
||||
], url, "a/b/c").subscribe((s:RouterStateSnapshot) => {
|
||||
|
|
|
@ -262,7 +262,7 @@ describe("Integration", () => {
|
|||
|
||||
router.resetConfig([
|
||||
{ path: '', terminal: true, component: SimpleCmp },
|
||||
{ path: '/user/:name', component: UserCmp }
|
||||
{ path: 'user/:name', component: UserCmp }
|
||||
]);
|
||||
|
||||
router.navigateByUrl('/user/victor');
|
||||
|
@ -282,7 +282,7 @@ describe("Integration", () => {
|
|||
advance(fixture);
|
||||
|
||||
router.resetConfig([
|
||||
{ path: '/user/:name', component: UserCmp }
|
||||
{ path: 'user/:name', component: UserCmp }
|
||||
]);
|
||||
|
||||
const recordedEvents:any = [];
|
||||
|
@ -324,7 +324,7 @@ describe("Integration", () => {
|
|||
advance(fixture);
|
||||
|
||||
router.resetConfig([
|
||||
{ path: '/user/:name', component: UserCmp }
|
||||
{ path: 'user/:name', component: UserCmp }
|
||||
]);
|
||||
|
||||
const recordedEvents:any = [];
|
||||
|
@ -492,8 +492,8 @@ describe("Integration", () => {
|
|||
advance(fixture);
|
||||
|
||||
router.resetConfig([
|
||||
{ path: '/old/team/:id', redirectTo: 'team/:id' },
|
||||
{ path: '/team/:id', component: TeamCmp }
|
||||
{ path: 'old/team/:id', redirectTo: 'team/:id' },
|
||||
{ path: 'team/:id', component: TeamCmp }
|
||||
]);
|
||||
|
||||
router.navigateByUrl('old/team/22');
|
||||
|
@ -639,7 +639,7 @@ describe("Integration", () => {
|
|||
|
||||
router.resetConfig([
|
||||
{ path: 'team/:id', component: TeamCmp, children: [
|
||||
{path: '/', terminal: true, component: SimpleCmp},
|
||||
{path: '', terminal: true, component: SimpleCmp},
|
||||
{path: 'user/:name', component: UserCmp, canDeactivate: ["CanDeactivateUser"] }
|
||||
]}
|
||||
]);
|
||||
|
|
Loading…
Reference in New Issue