Нет поставщика времени выполнения для RuntimeCompiler
Я пытаюсь следовать принятому ответу здесь и сделать вызов RuntimeCompiler.clearCache()
Вот как я пытался это сделать:
import { Component } from '@angular/core';
import { OnInit } from '@angular/core';
import { RuntimeCompiler } from '@angular/compiler';
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: 'app.component.html',
})
export class AppComponent implements OnInit {
constructor(private _runtimeCompiler: RuntimeCompiler) {}
ngOnInit() {
this._runtimeCompiler.clearCache();
}
}
Но я получаю эту ошибку:
ORIGINAL EXCEPTION: No provider for RuntimeCompiler!
Чего мне здесь не хватает?
4 ответа
С RC5+ эти провайдеры должны быть зарегистрированы на уровне AppModule
@NgModule({
imports: [
BrowserModule
...
],
declarations: [ ... ],
bootstrap: [ ... ],
providers: [
COMPILER_PROVIDERS
],
})
export class AppModule { }
Проверьте это Как я могу использовать / создать динамический шаблон для компиляции динамического компонента с Angular 2.0? для рабочего поршня
Удалить строку
import { RuntimeCompiler } from '@angular/compiler';
Затем добавьте компилятор для импорта @angular/core. И заменить RuntimeCompiler на Compiler;
import { Component, Compiler } from '@angular/core';
import { OnInit } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: 'app.component.html',
})
export class AppComponent implements OnInit {
constructor(private _compiler: Compiler) {}
ngOnInit() {
this._compiler.clearCache();
}
}
https://angular.io/docs/ts/latest/api/core/index/Compiler-class.html
Добавить RuntimeCompiler в качестве поставщика в вашем component
,
import { Component } from '@angular/core';
import { OnInit } from '@angular/core';
import { RuntimeCompiler } from '@angular/compiler';
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: 'app.component.html',
providers: [RuntimeCompiler]
})
export class AppComponent implements OnInit {
constructor(private _runtimeCompiler: RuntimeCompiler) {}
ngOnInit() {
this._runtimeCompiler.clearCache();
}
}
Добавлять RuntimeCompiler
вашим поставщикам компонентов. (providers: [RuntimeCompiler]
ниже templateUrl
)