feat(core): add DoBootstrap interface. (#24558)
Closes #24557. PR Close #24558
This commit is contained in:
parent
ec6d6175d2
commit
732026c3f5
|
@ -13,11 +13,11 @@
|
|||
|
||||
import {Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren} from './metadata/di';
|
||||
import {Component, Directive, HostBinding, HostListener, Input, Output, Pipe} from './metadata/directives';
|
||||
import {ModuleWithProviders, NgModule, SchemaMetadata} from './metadata/ng_module';
|
||||
import {DoBootstrap, ModuleWithProviders, NgModule, SchemaMetadata} from './metadata/ng_module';
|
||||
import {ViewEncapsulation} from './metadata/view';
|
||||
|
||||
export {ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildDecorator, ContentChildren, ContentChildrenDecorator, Query, ViewChild, ViewChildDecorator, ViewChildren, ViewChildrenDecorator} from './metadata/di';
|
||||
export {Component, ComponentDecorator, Directive, DirectiveDecorator, HostBinding, HostListener, Input, Output, Pipe} from './metadata/directives';
|
||||
export {AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, DoCheck, OnChanges, OnDestroy, OnInit} from './metadata/lifecycle_hooks';
|
||||
export {CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders, NO_ERRORS_SCHEMA, NgModule, SchemaMetadata} from './metadata/ng_module';
|
||||
export {CUSTOM_ELEMENTS_SCHEMA, DoBootstrap, ModuleWithProviders, NO_ERRORS_SCHEMA, NgModule, SchemaMetadata} from './metadata/ng_module';
|
||||
export {ViewEncapsulation} from './metadata/view';
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ApplicationRef} from '../application_ref';
|
||||
import {InjectorDef, InjectorType, defineInjector} from '../di/defs';
|
||||
import {convertInjectableProviderToFactory} from '../di/injectable';
|
||||
import {Provider} from '../di/provider';
|
||||
|
@ -352,3 +353,24 @@ export const NgModule: NgModuleDecorator = makeDecorator(
|
|||
* this module's members available to others.
|
||||
*/
|
||||
(type: Type<any>, meta: NgModule) => (R3_COMPILE_NGMODULE || preR3NgModuleCompile)(type, meta));
|
||||
|
||||
/**
|
||||
* @description
|
||||
* Hook for manual bootstrapping of the application instead of using bootstrap array in @NgModule
|
||||
* annotation.
|
||||
*
|
||||
* Reference to the current application is provided as a parameter.
|
||||
*
|
||||
* See ["Bootstrapping"](guide/bootstrapping) and ["Entry components"](guide/entry-components).
|
||||
*
|
||||
* @usageNotes
|
||||
* ```typescript
|
||||
* class AppModule implements DoBootstrap {
|
||||
* ngDoBootstrap(appRef: ApplicationRef) {
|
||||
* appRef.bootstrap(AppComponent); // Or some other component
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
*/
|
||||
export interface DoBootstrap { ngDoBootstrap(appRef: ApplicationRef): void; }
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {Component, EventEmitter, Injector, Input, NgModule, Output, destroyPlatform} from '@angular/core';
|
||||
import {Component, DoBootstrap, EventEmitter, Injector, Input, NgModule, Output, destroyPlatform} from '@angular/core';
|
||||
import {BrowserModule} from '@angular/platform-browser';
|
||||
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
|
||||
import {Subject} from 'rxjs';
|
||||
|
@ -109,13 +109,12 @@ class TestComponent {
|
|||
@Output() bazBaz = new EventEmitter<boolean>();
|
||||
@Output('quxqux') quxQux = new EventEmitter<Object>();
|
||||
}
|
||||
|
||||
@NgModule({
|
||||
imports: [BrowserModule],
|
||||
declarations: [TestComponent],
|
||||
entryComponents: [TestComponent],
|
||||
})
|
||||
class TestModule {
|
||||
class TestModule implements DoBootstrap {
|
||||
ngDoBootstrap() {}
|
||||
}
|
||||
|
||||
|
|
|
@ -267,6 +267,10 @@ export interface DirectiveDecorator {
|
|||
new (obj: Directive): Directive;
|
||||
}
|
||||
|
||||
export interface DoBootstrap {
|
||||
ngDoBootstrap(appRef: ApplicationRef): void;
|
||||
}
|
||||
|
||||
export interface DoCheck {
|
||||
ngDoCheck(): void;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue