2016-10-17 3 views
0

Я создаю динамический URL-адрес шаблона, используя следующий код How to use variable to define templateUrl in Angular2, но мне нужно использовать шаблон даты в шаблоне, и у меня возникли проблемы с добавлением библиотеки Angular UI Bootstrap (Угловая версия 2). ОшибкаДинамический шаблонURL с Угловой 2-й версией библиотеки Углового UI Bootstrap

«Нет кормильцем NgbDateParserFormatter»

Я добавил NgbModule и FormsModule к импорту раздела

@NgModule({ 
    imports: [CommonModule, NgbModule.forRoot(), FormsModule ], 
    declarations: [DynamicHtmlComponent] 
}) 

class DynamicHtmlModule {} 

Я создал версию plunker https://plnkr.co/edit/kWoSTi?p=preview Если поле даты в файле src/articles/first.html без ранения приложение не работает.

ответ

0

Я хотел бы использовать следующий способ сделать это работает:

this.compiler.compileModuleAndAllComponentsAsync(DynamicHtmlModule) 
    .then(factory => { 
    const moduleRef = factory.ngModuleFactory.create(this.vcRef.parentInjector); 

    const compFactory = factory.componentFactories 
     .find(x => x.componentType === DynamicHtmlComponent); 

    const cmpRef = this.vcRef.createComponent(compFactory, 0, moduleRef.injector); 
}); 

Plunker Example

Одно примечание: вы можете использовать NgbDatepickerModule вместо NgbModule. Это улучшит производительность Plunker

0

Вы можете импортировать NgbDatepickerModule этот путь:

@NgModule({ 
imports: [ 
    ... 
    NgbDatepickerModule.forRoot() 
], 

Это должно исправить "No поставщика для NgbDateParserFormatter"