提供服务的对象

时间:2016-09-14 11:00:35

标签: angular typescript angular2-services angular2-providers

我正在尝试使用其他人(github)的服务工具。

此服务要求将配置传递给它。根据回购:

You have to configure Neo4jSettings in your bootstrap:

provide('Neo4jSettings', {useValue: {
    endpoint: 'http://localhost:7474',
    username: 'neo4j',
    password: 'neo4j42'
}})

坦率地说,我不知道如何处理这些信息,因为我从来没有在我遵循的几个教程中将设置注入服务。谷歌对我帮助不大。

到目前为止我所做的是将服务添加到我的模块home.module.ts

@NgModule({
  imports: [CommonModule],
  declarations: [HomeComponent],
  exports: [HomeComponent],
  providers: [Neo4jService] // Here it is
})
export class HomeModule {}

我的组件home.component.ts

@Component({
  moduleId: module.id,
  selector: 'vs-home',
  providers: [Neo4jService], // here
  templateUrl: 'home.component.html'
})

export class HomeComponent implements OnInit {
    constructor(private Neo4jService: Neo4jService) {} // and here
}

可以预见,当我运行我的应用程序时,我收到此错误:

No provider for Neo4jSettings!

我的问题是,如何为服务提供对象?在这种情况下,Neo4jSettings

1 个答案:

答案 0 :(得分:0)

您需要将Neo4jSettings添加到模块提供程序,因此它应如下所示:

@NgModule({
  imports: [CommonModule],
  declarations: [HomeComponent],
  exports: [HomeComponent],
  providers: [
      Neo4jService,
      {
        provide: 'Neo4jSettings', useValue: {
            endpoint: 'http://localhost:7474',
            username: 'neo4j',
            password: 'neo4j42'
        }
    }
  ]
})

export class HomeModule {}