问题
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?
回答1:
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
来源:https://stackoverflow.com/questions/39659389/cant-read-the-url-error-for-angular2-dynamic-components-with-templateurl