fix(router): fix matrix params check to handle 'special' objects
This commit is contained in:
parent
0bd97ecda2
commit
d2d36c61f3
|
@ -35,11 +35,16 @@ export function createUrlTree(
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateCommands(n: NormalizedNavigationCommands): void {
|
function validateCommands(n: NormalizedNavigationCommands): void {
|
||||||
if (n.isAbsolute && n.commands.length > 0 && (typeof n.commands[0] === 'object')) {
|
if (n.isAbsolute && n.commands.length > 0 && isMatrixParams(n.commands[0])) {
|
||||||
throw new Error('Root segment cannot have matrix parameters');
|
throw new Error('Root segment cannot have matrix parameters');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isMatrixParams(command: any): boolean {
|
||||||
|
return typeof command === 'object' && command.outlets === undefined &&
|
||||||
|
command.segmentPath === undefined;
|
||||||
|
}
|
||||||
|
|
||||||
function tree(
|
function tree(
|
||||||
oldSegmentGroup: UrlSegmentGroup, newSegmentGroup: UrlSegmentGroup, urlTree: UrlTree,
|
oldSegmentGroup: UrlSegmentGroup, newSegmentGroup: UrlSegmentGroup, urlTree: UrlTree,
|
||||||
queryParams: Params, fragment: string): UrlTree {
|
queryParams: Params, fragment: string): UrlTree {
|
||||||
|
|
|
@ -54,6 +54,12 @@ describe('createUrlTree', () => {
|
||||||
expect(serializer.serialize(t)).toEqual('/a/11/d(right:c)');
|
expect(serializer.serialize(t)).toEqual('/a/11/d(right:c)');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should support updating secondary segments (absolute)', () => {
|
||||||
|
const p = serializer.parse('/a(right:b)');
|
||||||
|
const t = createRoot(p, ['/', {outlets: {right: ['c']}}]);
|
||||||
|
expect(serializer.serialize(t)).toEqual('/a(right:c)');
|
||||||
|
});
|
||||||
|
|
||||||
it('should support updating secondary segments', () => {
|
it('should support updating secondary segments', () => {
|
||||||
const p = serializer.parse('/a(right:b)');
|
const p = serializer.parse('/a(right:b)');
|
||||||
const t = createRoot(p, [{outlets: {right: ['c', 11, 'd']}}]);
|
const t = createRoot(p, [{outlets: {right: ['c', 11, 'd']}}]);
|
||||||
|
|
Loading…
Reference in New Issue