Max Max - 1 year ago 564
TypeScript Question

"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 ...".

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?

Answer Source

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: [ 
    DynamicModule.forRoot() // singletons