2016-12-26 37 views
1

这里的问题是:Angular2和Ng2Bootstrap问题:ComponentLoaderFactory

实际上,我想那里提供的NG2的自举的例子:

http://valorkin.github.io/ng2-bootstrap/#/

我做什么,是在复制/粘贴示例一个angular2项目我创建,使用system.js,我的实际system.js的配置是这样的:

System.config({ 
    defaultJSExtensions: true, 
    map: { 
     '@angular/core': '../node_modules/@angular/core/bundles/core.umd.js', 
     //... 
    } 
}); 
System.import('main'); 

其实,我尝试了这些examp LES,没有任何问题:

CAROUSEL 
COLLAPSE 
DROPDOWNS 

对于任何的这些例子,当我在app.module的进口部分声明它们,我使用了forRoot()函数:

..., DatepickerModule.forRoot(), CarouselModule.forRoot(), ... 

但是,当我试图复制/粘贴“日期选择器”的例子,我得到这个问题:

EXCEPTION: Error in templates/datepicker-demo.component.html:24:6 caused by: No provider for ComponentLoaderFactory! 

这是一个“日期选择器”标签打开就行了。 所以我试过的话,就是在systemJs地图这样的声明“组件加载器”:

'ng2-bootstrap/component-loader': '../node_modules/ng2-bootstrap/component-loader/index.js' 

和应用程序模块的“供应商”部分中声明。但是,这并没有解决任何问题,这导致关于未发现positioning.js一个新的错误...

这是什么“组件加载器”类,以及如何使用/包括它是否正确?

感谢您的阅读/帮助

回答

0

在你app.module:

你需要@NgModule()一个entryComponent场在你的模块文件,因为你动态加载的引导组件。 添加您的引导组件entryComponents数组中,如下图所示:

@NgModule({ 
declaration: [], 
imports: [], 
    entryComponents: [DatePickerComponent, ModalComponent,..] 
}) 
+0

所以,我把我的声明中的模块导入部分与forRoot()函数,我添加与组件​​的entryComponents一部分?其实我在“声明”数组中声明它们... – Julo0sS

+0

你必须在“声明数组”和“entryComponents”数组中声明它们。你需要声明NgbModule.forRoot()而不是DatepickerModule.forRoot(),CarouselModule.forRoot()inimports数组。还从'@ ng-bootstrap/ng-bootstrap'导入{NgbModule}; – saurav1405

+0

你解决了这个问题吗? – Jocket