angular2
Version:
Angular 2 - a web framework for modern web apps
20 lines (19 loc) • 709 B
JavaScript
import { isPresent } from 'angular2/src/facade/lang';
import { RouteData, BLANK_ROUTE_DATA } from '../../instruction';
export class AsyncRouteHandler {
constructor(_loader, data = null) {
this._loader = _loader;
/** @internal */
this._resolvedComponent = null;
this.data = isPresent(data) ? new RouteData(data) : BLANK_ROUTE_DATA;
}
resolveComponentType() {
if (isPresent(this._resolvedComponent)) {
return this._resolvedComponent;
}
return this._resolvedComponent = this._loader().then((componentType) => {
this.componentType = componentType;
return componentType;
});
}
}