Предоставить объект для службы

Я пытаюсь использовать службу, реализованную другим человеком ( github).

Этот сервис требует, чтобы ему была передана конфигурация. Согласно репо:

You have to configure Neo4jSettings in your bootstrap:

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

Откровенно говоря, я не знаю, что делать с этой информацией, поскольку мне никогда не приходилось вставлять настройки в службу в нескольких учебных пособиях, которым я следовал. Google не сильно мне помог.

То, что я сделал до сих пор, добавил службу в мой модуль 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 ответ

Вам нужно добавить Neo4jSettings вашим поставщикам модулей, так что это должно выглядеть так:

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

export class HomeModule {}
Другие вопросы по тегам