Ошибка Angular 9 NG2003: нет подходящего токена внедрения для параметра «url» класса «DataService»

Сообщение об ошибке «ng2003: нет подходящего токена внедрения для параметра URL-адреса класса dataservice» обычно появляется в Angular 9, когда отсутствует или неправильный токен внедрения для параметра в конструкторе класса. Эта ошибка связана с системой внедрения зависимостей Angular.

Чтобы устранить эту ошибку, вы можете попробовать следующие методы:

Метод 1: укажите правильный токен внедрения.
Убедитесь, что вы указали правильный токен внедрения для параметра URL в классе dataservice. Обычно это предполагает импорт необходимого модуля и использование соответствующего поставщика.

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DataService {
  constructor(private http: HttpClient) {}
// ...
}

В этом примере параметр «url» не указан явно, поскольку он автоматически разрешается системой внедрения зависимостей Angular.

Метод 2: используйте декоратор @Inject.
Если для параметра URL требуется собственный токен внедрения, вы можете использовать декоратор @Inject, чтобы указать токен.

import { Injectable, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { MY_CUSTOM_URL_TOKEN } from './tokens';
@Injectable()
export class DataService {
  constructor(private http: HttpClient, @Inject(MY_CUSTOM_URL_TOKEN) private url: string) {}
// ...
}

В этом примере параметр URL предоставляется с использованием специального токена внедрения MY_CUSTOM_URL_TOKEN.

Метод 3: проверьте конфигурации модуля.
Убедитесь, что модуль, в котором объявлен класс dataservice, правильно настроен и добавлен в массив поставщиков. Это гарантирует, что Angular сможет правильно разрешить токены внедрения.

import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { DataService } from './data.service';
@NgModule({
  imports: [
    HttpClientModule,
    // other module imports
  ],
  providers: [
    DataService,
    // other providers
  ],
})
export class AppModule {}

В этом примере DataService добавляется в массив поставщиков модуля.

Вот несколько возможных способов устранения ошибки «ng2003: нет подходящего токена внедрения» в Angular 9. Обязательно адаптируйте примеры кода к вашему конкретному варианту использования.