feat(router): add ParamMap.keys
to get a list of parameters
This commit is contained in:
@ -20,7 +20,7 @@ export {ExtraOptions, ROUTER_CONFIGURATION, ROUTER_INITIALIZER, RouterModule, pr
|
|||||||
export {RouterOutletMap} from './router_outlet_map';
|
export {RouterOutletMap} from './router_outlet_map';
|
||||||
export {NoPreloading, PreloadAllModules, PreloadingStrategy, RouterPreloader} from './router_preloader';
|
export {NoPreloading, PreloadAllModules, PreloadingStrategy, RouterPreloader} from './router_preloader';
|
||||||
export {ActivatedRoute, ActivatedRouteSnapshot, RouterState, RouterStateSnapshot} from './router_state';
|
export {ActivatedRoute, ActivatedRouteSnapshot, RouterState, RouterStateSnapshot} from './router_state';
|
||||||
export {PRIMARY_OUTLET, ParamMap, Params} from './shared';
|
export {PRIMARY_OUTLET, ParamMap, Params, convertToParamMap} from './shared';
|
||||||
export {UrlHandlingStrategy} from './url_handling_strategy';
|
export {UrlHandlingStrategy} from './url_handling_strategy';
|
||||||
export {DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree} from './url_tree';
|
export {DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree} from './url_tree';
|
||||||
export {VERSION} from './version';
|
export {VERSION} from './version';
|
||||||
|
@ -54,6 +54,9 @@ export interface ParamMap {
|
|||||||
* If there is no such parameter, an empty array is returned.
|
* If there is no such parameter, an empty array is returned.
|
||||||
*/
|
*/
|
||||||
getAll(name: string): string[];
|
getAll(name: string): string[];
|
||||||
|
|
||||||
|
/** Name of the parameters */
|
||||||
|
readonly keys: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
class ParamsAsMap implements ParamMap {
|
class ParamsAsMap implements ParamMap {
|
||||||
@ -80,8 +83,15 @@ class ParamsAsMap implements ParamMap {
|
|||||||
|
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get keys(): string[] { return Object.keys(this.params); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a {@link Params} instance to a {@link ParamMap}.
|
||||||
|
*
|
||||||
|
* @stable
|
||||||
|
*/
|
||||||
export function convertToParamMap(params: Params): ParamMap {
|
export function convertToParamMap(params: Params): ParamMap {
|
||||||
return new ParamsAsMap(params);
|
return new ParamsAsMap(params);
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,11 @@ describe('ParamsMap', () => {
|
|||||||
expect(map.has('not here')).toEqual(false);
|
expect(map.has('not here')).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should returns the name of the parameters', () => {
|
||||||
|
const map = convertToParamMap({single: 's', multiple: ['m1', 'm2']});
|
||||||
|
expect(map.keys).toEqual(['single', 'multiple']);
|
||||||
|
});
|
||||||
|
|
||||||
it('should support single valued parameters', () => {
|
it('should support single valued parameters', () => {
|
||||||
const map = convertToParamMap({single: 's', multiple: ['m1', 'm2']});
|
const map = convertToParamMap({single: 's', multiple: ['m1', 'm2']});
|
||||||
expect(map.get('single')).toEqual('s');
|
expect(map.get('single')).toEqual('s');
|
||||||
|
4
tools/public_api_guard/router/router.d.ts
vendored
4
tools/public_api_guard/router/router.d.ts
vendored
@ -59,6 +59,9 @@ export interface CanLoad {
|
|||||||
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean;
|
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @stable */
|
||||||
|
export declare function convertToParamMap(params: Params): ParamMap;
|
||||||
|
|
||||||
/** @stable */
|
/** @stable */
|
||||||
export declare type Data = {
|
export declare type Data = {
|
||||||
[name: string]: any;
|
[name: string]: any;
|
||||||
@ -156,6 +159,7 @@ export declare class NoPreloading implements PreloadingStrategy {
|
|||||||
|
|
||||||
/** @stable */
|
/** @stable */
|
||||||
export interface ParamMap {
|
export interface ParamMap {
|
||||||
|
readonly keys: string[];
|
||||||
get(name: string): string | null;
|
get(name: string): string | null;
|
||||||
getAll(name: string): string[];
|
getAll(name: string): string[];
|
||||||
has(name: string): boolean;
|
has(name: string): boolean;
|
||||||
|
Reference in New Issue
Block a user