所以我从RC1升级到Angular2的最终版本。我做了很多调整,但每当我在RuntimeCompiler
上注入AppComponent
时,就会发生此错误。
我不知道这里发生了什么,也没有看到关于这个问题的网络答案。任何帮助将不胜感激,无论如何这里是我的AppComponent供参考。
import { Component } from '@angular/core';
import { Location } from '@angular/common';
import { Router } from '@angular/router';
import { RuntimeCompiler } from '@angular/compiler';
@Component({
selector: 'content',
template: '<router-outlet></router-outlet>'
})
export class AppComponent {
constructor(
private location: Location,
private router: Router,
private runtimeCompiler: RuntimeCompiler
) {;
if (localStorage.getItem('id_token') == undefined) {
if (location.path().toLowerCase().startsWith('/login')) {
// LET IT BE
} else {
router.navigate(['login']);
}
runtimeCompiler.clearCache();
} else {
router.navigate(['menu']);
}
}
}
提前谢谢。
答案 0 :(得分:3)
我想说,你应该将提供者集添加到app模块:
import { COMPILER_PROVIDERS } from "@angular/compiler";
...
@NgModule({
imports: [
...
BrowserModule
],
declarations: [ ... ],
bootstrap: [ ... ],
providers: [
COMPILER_PROVIDERS
],
})
export class AppModule { }
这组提供商COMPILER_PROVIDERS
包含RuntimeCompiler
所需的全部内容。使用该段代码How can I use/create dynamic template to compile dynamic Component with Angular 2.0?的example
工作plunker
以及其他一些细节......