Use case

Dynamic compile components by a string template for Angular. You can provide a context, that you can use with anything (for clicking for free etc..)

The old angular-compile-html.

NPM & Version

It is a CommonJS bundle. The version reflects the Angular version (AngularMajor.AngularMinor.Build-Commit).


npm install --save p3x-angular-compile
# or
yarn add p3x-angular-compile


It is not working out of the box (the default is either JIT or AOT, not both), but the apps become 10 folds faster. The @ngtools/webpack is AOT and the awesome-typescript-loader is JIT only.

The solution can be architect with the @angular/compiler and the awesome-typescript-loader together. A miracle!

Example here: More info about AOT + JIT


If you want very small bundle, use gzip.


// the module settings
    imports: [
            module: {
                schemas: [CUSTOM_ELEMENTS_SCHEMA],
                declarations: [MyDynamicElement ]
    declarations: [
    providers: [
    bootstrap: [ Page ]
export class Module { };
 <div *ngIf="true" [p3x-compile]="data" [p3x-compile-ctx]="this"></div>
// a page example
export class Page {

    data: string = "<div (click)="context.alert()">It is working</div>";

    alert() {

Actual used dynamic compiler

I use a dynamic Markdown page with p3x-angular-compile: Module , Example page


Please refer to use an a service


Reference for the Angular module settings.

The templates are cached.

export interface CompileOptions {   
    // cached by template
    template: string;
    container: ViewContainerRef;
    context?: any,

    // you can customize here any you want to
    // CommonModule, BrowserModule are auto added 
    // (like *ngIf and angular default directives)
    // though CompileModule.forRoot is usually enough
    // so you do not need to use it
    module?: NgModule;

    onCompiled?: Function,
    onError?: Function;


Deployed example

Corifeus Pages (JIT + AOT at once)


Dev environment end test

npm install -g yarn
git clone https://github.com/patrikx3/angular-compile.git
cd angular-compile
yarn install
grunt run|default


p3x Wheel
AES secure folder encrypt and decryptAngular Dynamic Compile service and directiveCorifeus - MatrixCorifeus App Server P3X - SpectrumCorifeus App Web Pages - SupportCorifeus Builder - MakeCorifeus Builder Angular - LastCorifeus Server - MotorCorifeus Server Deployer - LastCorifeus Utils - MemoryCoriefus Web - ForestCorifeus Web Material - AmazingLinux OnenotePersistent RAM diskSystemD Manager, watchdog, notifier and serviceTools