feat(core): allow custom selector when bootstrapping components (#15668)
- fixes #7136 PR Close #15668
This commit is contained in:

committed by
Miško Hevery

parent
cb384e8ed3
commit
900a88b15d
@ -358,10 +358,15 @@ export abstract class ApplicationRef {
|
||||
* specified application component onto DOM elements identified by the [componentType]'s
|
||||
* selector and kicks off automatic change detection to finish initializing the component.
|
||||
*
|
||||
* Optionally, a component can be mounted onto a DOM element that does not match the
|
||||
* [componentType]'s selector.
|
||||
*
|
||||
* ### Example
|
||||
* {@example core/ts/platform/platform.ts region='longform'}
|
||||
*/
|
||||
abstract bootstrap<C>(componentFactory: ComponentFactory<C>|Type<C>): ComponentRef<C>;
|
||||
abstract bootstrap<C>(
|
||||
componentFactory: ComponentFactory<C>|Type<C>,
|
||||
rootSelectorOrNode?: string|any): ComponentRef<C>;
|
||||
|
||||
/**
|
||||
* Invoke this method to explicitly process change detection and its side-effects.
|
||||
@ -491,7 +496,8 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||
view.detachFromAppRef();
|
||||
}
|
||||
|
||||
bootstrap<C>(componentOrFactory: ComponentFactory<C>|Type<C>): ComponentRef<C> {
|
||||
bootstrap<C>(componentOrFactory: ComponentFactory<C>|Type<C>, rootSelectorOrNode?: string|any):
|
||||
ComponentRef<C> {
|
||||
if (!this._initStatus.done) {
|
||||
throw new Error(
|
||||
'Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.');
|
||||
@ -509,7 +515,8 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||
const ngModule = componentFactory instanceof ComponentFactoryBoundToModule ?
|
||||
null :
|
||||
this._injector.get(NgModuleRef);
|
||||
const compRef = componentFactory.create(Injector.NULL, [], componentFactory.selector, ngModule);
|
||||
const selectorOrNode = rootSelectorOrNode || componentFactory.selector;
|
||||
const compRef = componentFactory.create(Injector.NULL, [], selectorOrNode, ngModule);
|
||||
|
||||
compRef.onDestroy(() => { this._unloadComponent(compRef); });
|
||||
const testability = compRef.injector.get(Testability, null);
|
||||
|
Reference in New Issue
Block a user