Angular2 Нет поставщика для CompileMetadataResolver

Итак, я обновился с RC1 до финальной версии Angular2. Я сделал много корректировок, но каждый раз, когда я вводил RuntimeCompiler на моем AppComponentэта ошибка возникает.

Нет поставщика для CompileMetadataResolver

Я понятия не имею, что здесь происходит, и я не видел ответы в Интернете по этому вопросу. Любая помощь будет оценена, в любом случае вот мой 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']);
        }
    }
}

Заранее спасибо.

1 ответ

Решение

Я бы сказал, что вы должны добавить набор провайдеров в модуль приложения:

import { COMPILER_PROVIDERS } from "@angular/compiler";
...

@NgModule({
    imports: [
        ...
        BrowserModule
    ],
    declarations: [ ... ],
    bootstrap:    [ ... ],
    providers: [
        COMPILER_PROVIDERS
    ],
})
export class AppModule { }

Этот набор COMPILER_PROVIDERS провайдеров содержит все, что нужно RuntimeCompiler, Есть example с работой plunker используя этот фрагмент кода Как я могу использовать / создать динамический шаблон для компиляции динамического компонента с Angular 2.0? и еще несколько деталей...

Другие вопросы по тегам