"Can't read the url" 使用 templateUrl 的 angular2 动态组件出错

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

试图修改灵魂。 它工作正常,但是如果你在组件中将模板更改为 templateUrl,那应该是动态加载的,你会得到一个错误:"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 { ... }

plunker 上的实例。有什么解决办法吗?

不要使用 COMPILER_PROVIDERS,因为它会覆盖 ResourceLoader

对于动态加载,使用核心包中的 Compiler(实际上与 RuntimeCompiler 相同):

@Inject(Compiler) protected compiler: Compiler

并在您的模块中添加 ApplicationModule 作为导入:

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

Plunker