UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 11.1 kB
{"version":3,"sources":["dynamic_component_loader.js"],"names":[],"mappings":"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","file":"angular2/src/core/compiler/dynamic_component_loader.js","sourcesContent":["import {Key, Injector, Injectable, ResolvedBinding} from 'angular2/di'\nimport {Compiler} from './compiler';\nimport {DirectiveMetadataReader} from './directive_metadata_reader';\nimport {Type, BaseException, stringify, isPresent} from 'angular2/src/facade/lang';\nimport {Promise} from 'angular2/src/facade/async';\nimport {Component} from 'angular2/src/core/annotations/annotations';\nimport {ViewFactory} from 'angular2/src/core/compiler/view_factory';\nimport {AppViewHydrator} from 'angular2/src/core/compiler/view_hydrator';\nimport {ElementRef, DirectiveBinding} from './element_injector';\nimport {AppView} from './view';\n\n/**\n * @exportedAs angular2/view\n */\nexport class ComponentRef {\n location:ElementRef;\n instance:any;\n componentView:AppView;\n _dispose:Function;\n\n constructor(location:ElementRef, instance:any, componentView:AppView, dispose:Function){\n this.location = location;\n this.instance = instance;\n this.componentView = componentView;\n this._dispose = dispose;\n }\n\n get injector() {\n return this.location.injector;\n }\n\n get hostView() {\n return this.location.hostView;\n }\n\n dispose() {\n this._dispose();\n }\n}\n\n/**\n * Service for dynamically loading a Component into an arbitrary position in the internal Angular\n * application tree.\n *\n * @exportedAs angular2/view\n */\n@Injectable()\nexport class DynamicComponentLoader {\n _compiler:Compiler;\n _viewFactory:ViewFactory;\n _viewHydrator:AppViewHydrator;\n _directiveMetadataReader:DirectiveMetadataReader;\n\n constructor(compiler:Compiler, directiveMetadataReader:DirectiveMetadataReader,\n viewFactory:ViewFactory, viewHydrator:AppViewHydrator) {\n this._compiler = compiler;\n this._directiveMetadataReader = directiveMetadataReader;\n this._viewFactory = viewFactory;\n this._viewHydrator = viewHydrator;\n }\n\n /**\n * Loads a component into the location given by the provided ElementRef. The loaded component\n * receives injection as if it in the place of the provided ElementRef.\n */\n loadIntoExistingLocation(type:Type, location:ElementRef, injector:Injector = null):Promise<ComponentRef> {\n this._assertTypeIsComponent(type);\n var annotation = this._directiveMetadataReader.read(type).annotation;\n var componentBinding = DirectiveBinding.createFromType(type, annotation);\n\n return this._compiler.compile(type).then(componentProtoView => {\n var componentView = this._viewFactory.getView(componentProtoView);\n this._viewHydrator.hydrateDynamicComponentView(\n location, componentView, componentBinding, injector);\n\n var dispose = () => {throw new BaseException(\"Not implemented\");};\n return new ComponentRef(location, location.elementInjector.getDynamicallyLoadedComponent(), componentView, dispose);\n });\n }\n\n /**\n * Loads a component in the element specified by elementOrSelector. The loaded component receives\n * injection normally as a hosted view.\n */\n loadIntoNewLocation(type:Type, parentComponentLocation:ElementRef, elementOrSelector:any,\n injector:Injector = null):Promise<ComponentRef> {\n this._assertTypeIsComponent(type);\n\n return this._compiler.compileInHost(type).then(hostProtoView => {\n var hostView = this._viewFactory.getView(hostProtoView);\n this._viewHydrator.hydrateInPlaceHostView(\n parentComponentLocation, elementOrSelector, hostView, injector\n );\n\n var newLocation = hostView.elementInjectors[0].getElementRef();\n var component = hostView.elementInjectors[0].getComponent();\n var dispose = () => {\n this._viewHydrator.dehydrateInPlaceHostView(parentComponentLocation, hostView);\n this._viewFactory.returnView(hostView);\n };\n return new ComponentRef(newLocation, component, hostView.componentChildViews[0], dispose);\n });\n }\n\n /**\n * Loads a component next to the provided ElementRef. The loaded component receives\n * injection normally as a hosted view.\n */\n loadNextToExistingLocation(type:Type, location:ElementRef, injector:Injector = null):Promise<ComponentRef> {\n this._assertTypeIsComponent(type);\n\n return this._compiler.compileInHost(type).then(hostProtoView => {\n var hostView = location.viewContainer.create(-1, hostProtoView, injector);\n\n var newLocation = hostView.elementInjectors[0].getElementRef();\n var component = hostView.elementInjectors[0].getComponent();\n var dispose = () => {\n var index = location.viewContainer.indexOf(hostView);\n location.viewContainer.remove(index);\n };\n return new ComponentRef(newLocation, component, hostView.componentChildViews[0], dispose);\n });\n }\n\n /** Asserts that the type being dynamically instantiated is a Component. */\n _assertTypeIsComponent(type:Type) {\n var annotation = this._directiveMetadataReader.read(type).annotation;\n if (!(annotation instanceof Component)) {\n throw new BaseException(`Could not load '${stringify(type)}' because it is not a component.`);\n }\n }\n}\n"]}