angular - "Kan inte läsa URL:en" fel för angular2 dynamiska komponenter med templateUrl


Försökte modifiera lösningen härifrån. Det fungerar bra, men om du ändrar template till templateUrl i komponenten, som borde laddas dynamiskt, får du ett fel: "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-exempel på Plunker. Några idéer på hur man fixar detta?

Svar #1

Använd inte COMPILER_PROVIDERS, eftersom det åsidosätter ResourceLoader.

För dynamisk laddning, använd Compiler från core-paketet (vilket faktiskt är samma som RuntimeCompiler):

@Inject(Compiler) protected compiler: Compiler

och lägg till ApplicationModule som import i din modul:

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

Plunker

Relaterade artiklar