angulartypescriptangular2-compiler

"Can't read the url" error for angular2 dynamic components with templateUrl


Tried to modify soultion from here. It works fine, but if you change template to templateUrl in component, that should load dynamically, you get an error: "No ResourceLoader implementation has been provided. Can't read the url ...".

@Component({
    selector: 'string-editor',
    templateUrl: 'app/parts/string.html', //using template URL instead of inline template here
})
export class StringEditor { ... }

Live example on plunker. Any ideas how to fix this?


Solution

  • Don't use COMPILER_PROVIDERS, because it overrides the ResourceLoader.

    For dynamic loading use the Compiler from core package (which is actually the same as RuntimeCompiler):

    @Inject(Compiler) protected compiler: Compiler
    

    and add the ApplicationModule as import in your module:

    imports: [ 
        ApplicationModule,
        BrowserModule,
        DynamicModule.forRoot() // singletons
    ],
    

    Plunker