parent
80a5e47e61
commit
3191fd1440
|
@ -1,45 +0,0 @@
|
||||||
import {Injectable} from 'angular2/src/core/di';
|
|
||||||
import {Type, isPresent} from 'angular2/src/facade/lang';
|
|
||||||
import {Map, MapWrapper} from 'angular2/src/facade/collection';
|
|
||||||
import {reflector} from 'angular2/src/core/reflection/reflection';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolve a `Type` from a {@link ComponentMetadata} into a URL.
|
|
||||||
*
|
|
||||||
* This interface can be overridden by the application developer to create custom behavior.
|
|
||||||
*
|
|
||||||
* See {@link Compiler}.
|
|
||||||
*/
|
|
||||||
@Injectable()
|
|
||||||
export class ComponentUrlMapper {
|
|
||||||
/**
|
|
||||||
* Returns the base URL to the component source file.
|
|
||||||
* The returned URL could be:
|
|
||||||
* - an absolute URL,
|
|
||||||
* - a path relative to the application
|
|
||||||
*/
|
|
||||||
getUrl(component: Type): string {
|
|
||||||
return reflector.isReflectionEnabled() ? reflector.importUri(component) : './';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A {@link ComponentUrlMapper} that maintains an internal map of types to URLs.
|
|
||||||
*/
|
|
||||||
export class RuntimeComponentUrlMapper extends ComponentUrlMapper {
|
|
||||||
/** @internal */
|
|
||||||
_componentUrls = new Map<Type, string>();
|
|
||||||
|
|
||||||
constructor() { super(); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a mapping from component type to url to the resolver.
|
|
||||||
*/
|
|
||||||
setComponentUrl(component: Type, url: string) { this._componentUrls.set(component, url); }
|
|
||||||
|
|
||||||
getUrl(component: Type): string {
|
|
||||||
var url = this._componentUrls.get(component);
|
|
||||||
if (isPresent(url)) return url;
|
|
||||||
return super.getUrl(component);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue