feat(core): add a component resolver that can load components lazily using system.js
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
// Public API for compiler
|
||||
export {ComponentResolver} from './linker/component_resolver';
|
||||
export {SystemJsComponentResolver} from './linker/systemjs_component_resolver';
|
||||
export {QueryList} from './linker/query_list';
|
||||
export {DynamicComponentLoader} from './linker/dynamic_component_loader';
|
||||
export {ElementRef} from './linker/element_ref';
|
||||
|
@ -0,0 +1,21 @@
|
||||
import { ComponentResolver } from './component_resolver';
|
||||
import { Type, isString, global } from '../../src/facade/lang';
|
||||
import { ComponentFactory } from './component_factory';
|
||||
|
||||
/**
|
||||
* Component resolver that can load components lazily
|
||||
*/
|
||||
export class SystemJsComponentResolver implements ComponentResolver {
|
||||
constructor(private _resolver: ComponentResolver) {}
|
||||
|
||||
resolveComponent(componentType:string|Type):Promise<ComponentFactory<any>> {
|
||||
if (isString(componentType)) {
|
||||
return (<any>global).System.import(componentType).then(module =>
|
||||
this._resolver.resolveComponent(module.default));
|
||||
} else {
|
||||
return this._resolver.resolveComponent(<Type>componentType);
|
||||
}
|
||||
}
|
||||
|
||||
clearCache() {}
|
||||
}
|
Reference in New Issue
Block a user