Я использую apollo graphql, и у него есть модуль с функцией внутри него.
export function createApollo(httpLink: HttpLink, connectToDevTools: true){
Внутри этой функции вы определяете URL для конечной точки graphql, например, const uri = http://127.0.0.1/graphql
.
Я хотел бы импортировать этот URL-адрес из службы (так что мне нужно только изменитьURL-адрес внутреннего сервера в одном месте), но я не могу внедрить службу, поскольку свойство остается неопределенным.
export function createApollo(httpLink: HttpLink, connectToDevTools: true, urlservice: UrlsService) {
const uri = urlservice.graphqlAddress;
Ошибка: Cannot read property 'graphqlAddress' of undefined
Я также пытался внедрить службув конструктор модулей, но это еще ниже по цепочке, с теми же результатами.
Как получить внешнее свойство в функцию createApollo
?
Мой сервис в основном выглядит следующим образом:
export class UrlsService {
...
graphqlAddress = 'http://192.168.2.24:8000/graphql/';
...
}
Поставщики GraphQLModule:
@NgModule({
exports: [ApolloModule, HttpLinkModule],
providers: [
UrlsService,
{
provide: APOLLO_OPTIONS,
useFactory: createApollo,
deps: [HttpLink],
},
],
})
export class GraphQLModule {
}