Сообщение об ошибке «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. Обязательно адаптируйте примеры кода к вашему конкретному варианту использования.