3

我正在实现 ng2-bootstrap datepicker,但出现以下错误。请帮助我。

EXCEPTION: Uncaught (in promise): Error: Error in
         http://localhost:8888/app/components/report.component.html:3:0 caused by: No provider for DatepickerConfig! 

模块.ts

 import { DatepickerModule } from 'ng2-bootstrap';

  @NgModule({
   imports: [DatepickerModule],
   declarations: [],
   providers: [],
   bootstrap: [AppComponent]
})

组件.ts

@Component({
 module: module.id,
 selector:'my-date',
 template: `
  <h4>My Date Picker</h4>
  <datepicker></datepicker>`
})

 export class MyComponent {
 }

systemjs.config.js

System.config({ map: { 'ng2-bootstrap':
 'npm:ng2-bootstrap/bundles/ng2-bootstrap.umd.js'} })
4

1 回答 1

9

您应该使用 forRoot(),因为它在示例存储库中以这种方式定义。

  @NgModule({
   imports: [DatepickerModule.forRoot()],
   declarations: [],
   providers: [],
   bootstrap: [AppComponent]
})

按照惯例,forRoot 静态方法同时提供和配置服务。它接受一个服务配置对象并返回一个 ModuleWithProviders ,这是一个具有两个属性的简单对象:

• ngModule - CoreModule 类

• 提供者 - 配置的提供者

根 AppModule 导入 CoreModule 并将提供程序添加到 AppModule 提供程序。

来源:https: //angular.io/docs/ts/latest/guide/ngmodule.html#!#configure-core-services-with-coremodule-forroot

示例存储库:https ://github.com/valor-software/angular2-quickstart/blob/master/app/app.module.ts

于 2017-01-11T09:47:09.870 回答