Автономное приложение Angular 16, не знаю, как использовать сервисы. Ошибка: тип «I18nService» должен быть автономным ко ⇐ Javascript
-
Гость
Автономное приложение Angular 16, не знаю, как использовать сервисы. Ошибка: тип «I18nService» должен быть автономным ко
Я создаю отдельное приложение с нуля, у меня нет ngModule.
Я создаю службу перевода и канал для ее использования.
тестируем на app.comComponent.ts
import { Component, OnInit } из '@angular/core'; импортировать { CommonModule } из '@angular/common'; импортировать { RouterOutlet } из '@angular/router'; импортировать {I18nPipe} из './pipes/i18n.pipe'; импортировать {I18nService} из './services/i18n.service'; @Компонент({ селектор: 'ct-v4', автономный: правда, импорт: [CommonModule, RouterOutlet, I18nPipe], templateUrl: './app.comComponent.html', styleUrls: ['./app.comComponent.scss'] }) класс экспорта AppComponent реализует OnInit { заголовок = 'ct-v4'; конструктор (частный i18nService: I18nService) {} ngOnInit(): пустота { this.i18nService.initLanguage('en'); } } Мой сервис i18n:
import { Injectable } из '@angular/core'; импортировать { HttpClient } из @angular/common/http; @Инъекционный({ предоставлено: 'корень' }) класс экспорта I18nService { частные переводы: { [ключ: строка]: строка } = {}; конструктор (частный http: HttpClient) {} initLanguage (язык: строка, isFallback = false): void { this.http.get(`/langs/${lang}.json`).subscribe({ следующий: (данные: любые) => { this.translations = данные; }, ошибка: (ошибка) => { console.error(`Языковой файл для ${lang} не найден.`); если (!isFallback) { console.info('Возврат к языку по умолчанию: en'); this.initLanguage('en', true); } еще { console.error('Даже язык по умолчанию "en" отсутствует. Остановка инициализации языка.'); } } }); } i18n(ключ: строка): строка { верните this.translations[ключ] || ключ; } } Сам канал не жалуется, потому что он тоже автономен, Я получаю эту ошибку:
NullInjectorError: R3InjectorError(Standalone[AppComponent])[I18nService -> I18nService -> HttpClient -> HttpClient]: NullInjectorError: нет поставщика для HttpClient! Я не нашел в Интернете примеров использования сервисов в автономных приложениях Angular
Есть идеи?
Я создаю отдельное приложение с нуля, у меня нет ngModule.
Я создаю службу перевода и канал для ее использования.
тестируем на app.comComponent.ts
import { Component, OnInit } из '@angular/core'; импортировать { CommonModule } из '@angular/common'; импортировать { RouterOutlet } из '@angular/router'; импортировать {I18nPipe} из './pipes/i18n.pipe'; импортировать {I18nService} из './services/i18n.service'; @Компонент({ селектор: 'ct-v4', автономный: правда, импорт: [CommonModule, RouterOutlet, I18nPipe], templateUrl: './app.comComponent.html', styleUrls: ['./app.comComponent.scss'] }) класс экспорта AppComponent реализует OnInit { заголовок = 'ct-v4'; конструктор (частный i18nService: I18nService) {} ngOnInit(): пустота { this.i18nService.initLanguage('en'); } } Мой сервис i18n:
import { Injectable } из '@angular/core'; импортировать { HttpClient } из @angular/common/http; @Инъекционный({ предоставлено: 'корень' }) класс экспорта I18nService { частные переводы: { [ключ: строка]: строка } = {}; конструктор (частный http: HttpClient) {} initLanguage (язык: строка, isFallback = false): void { this.http.get(`/langs/${lang}.json`).subscribe({ следующий: (данные: любые) => { this.translations = данные; }, ошибка: (ошибка) => { console.error(`Языковой файл для ${lang} не найден.`); если (!isFallback) { console.info('Возврат к языку по умолчанию: en'); this.initLanguage('en', true); } еще { console.error('Даже язык по умолчанию "en" отсутствует. Остановка инициализации языка.'); } } }); } i18n(ключ: строка): строка { верните this.translations[ключ] || ключ; } } Сам канал не жалуется, потому что он тоже автономен, Я получаю эту ошибку:
NullInjectorError: R3InjectorError(Standalone[AppComponent])[I18nService -> I18nService -> HttpClient -> HttpClient]: NullInjectorError: нет поставщика для HttpClient! Я не нашел в Интернете примеров использования сервисов в автономных приложениях Angular
Есть идеи?
Мобильная версия