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 {Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren} from './metadata/di';
|
||||||
import {Component, Directive, HostBinding, HostListener, Input, Output, Pipe} from './metadata/directives';
|
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';
|
import {ViewEncapsulation} from './metadata/view';
|
||||||
|
|
||||||
export {ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildDecorator, ContentChildren, ContentChildrenDecorator, Query, ViewChild, ViewChildDecorator, ViewChildren, ViewChildrenDecorator} from './metadata/di';
|
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 {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 {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';
|
export {ViewEncapsulation} from './metadata/view';
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import {ApplicationRef} from '../application_ref';
|
||||||
import {InjectorDef, InjectorType, defineInjector} from '../di/defs';
|
import {InjectorDef, InjectorType, defineInjector} from '../di/defs';
|
||||||
import {convertInjectableProviderToFactory} from '../di/injectable';
|
import {convertInjectableProviderToFactory} from '../di/injectable';
|
||||||
import {Provider} from '../di/provider';
|
import {Provider} from '../di/provider';
|
||||||
|
@ -352,3 +353,24 @@ export const NgModule: NgModuleDecorator = makeDecorator(
|
||||||
* this module's members available to others.
|
* this module's members available to others.
|
||||||
*/
|
*/
|
||||||
(type: Type<any>, meta: NgModule) => (R3_COMPILE_NGMODULE || preR3NgModuleCompile)(type, meta));
|
(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
|
* 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 {BrowserModule} from '@angular/platform-browser';
|
||||||
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
|
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
|
||||||
import {Subject} from 'rxjs';
|
import {Subject} from 'rxjs';
|
||||||
|
@ -109,13 +109,12 @@ class TestComponent {
|
||||||
@Output() bazBaz = new EventEmitter<boolean>();
|
@Output() bazBaz = new EventEmitter<boolean>();
|
||||||
@Output('quxqux') quxQux = new EventEmitter<Object>();
|
@Output('quxqux') quxQux = new EventEmitter<Object>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [BrowserModule],
|
imports: [BrowserModule],
|
||||||
declarations: [TestComponent],
|
declarations: [TestComponent],
|
||||||
entryComponents: [TestComponent],
|
entryComponents: [TestComponent],
|
||||||
})
|
})
|
||||||
class TestModule {
|
class TestModule implements DoBootstrap {
|
||||||
ngDoBootstrap() {}
|
ngDoBootstrap() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -267,6 +267,10 @@ export interface DirectiveDecorator {
|
||||||
new (obj: Directive): Directive;
|
new (obj: Directive): Directive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface DoBootstrap {
|
||||||
|
ngDoBootstrap(appRef: ApplicationRef): void;
|
||||||
|
}
|
||||||
|
|
||||||
export interface DoCheck {
|
export interface DoCheck {
|
||||||
ngDoCheck(): void;
|
ngDoCheck(): void;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue