What it does
Part of the upgrade/static library for hybrid upgrade apps that support AoT compilation
Allows an Angular 1 component to be used from Angular 2+.
How to use
Let's assume that you have an Angular 1 component called ng1Hero
that needs
to be made available in Angular 2+ templates.
We must create a Directive
that will make this Angular 1 component
available inside Angular 2+ templates.
In this example you can see that we must derive from the UpgradeComponent
base class but also provide an @Directive
decorator. This is
because the AoT compiler requires that this information is statically available at
compile time.
Note that we must do the following:
- specify the directive's selector (
ng1-hero
) - specify all inputs and outputs that the Angular 1 component expects
- derive from
UpgradeComponent
- call the base class from the constructor, passing
- the Angular 1 name of the component (
ng1Hero
) - the
ElementRef
andInjector
for the component wrapper
- the Angular 1 name of the component (
Class Overview
class UpgradeComponent implements OnInit, OnChanges, DoCheck, OnDestroy {
constructor
(name: string, elementRef: ElementRef, injector: Injector)
}
Class Description
A helper class that should be used as a base class for creating Angular directives that wrap Angular 1 components that need to be "upgraded".
Constructor
constructor(name: string, elementRef: ElementRef, injector: Injector)
Create a new UpgradeComponent
instance. You should not normally need to do this.
Instead you should derive a new class from this one and call the super constructor
from the base class.
- The
name
parameter should be the name of the Angular 1 directive. - The
elementRef
andinjector
parameters should be acquired from Angular by dependency injection into the base class constructor.
Note that we must manually implement lifecycle hooks that call through to the super class.
This is because, at the moment, the AoT compiler is not able to tell that the
UpgradeComponent
already implements them and so does not wire up calls to them at runtime.
exported from @angular/upgrade/static, defined in @angular/upgrade/src/aot/upgrade_component.ts