小编Pat*_*ryk的帖子

NullInjectorError - 根独立组件未正确导入 HttpClientModule

我有一个问题,我想重写我的应用程序代码并将主模块更改为 main.ts 中指向的主根独立组件。

一切正常,但我对 HttpClientModule 有问题。我在 root 中提供的一项服务中使用 HttpClient。在 MainComponent 中,我将 HttpClientModules 添加到导入数组中,但随后出现错误,表示我没有向应用程序提供 HttpClientMoudle,并且此服务无法使用它。

Uncaught (in promise): NullInjectorError: R3InjectorError(Standalone[MainComponent])[MainService -> MainService -> HttpClient -> HttpClient]:
NullInjectorError: No provider for HttpClient!
Run Code Online (Sandbox Code Playgroud)

当我将此 HttpClientModule 添加到 AppRoutingModule 时,我也将其添加到 main.ts 中

bootstrapApplication(MainComponent, {
  providers: [importProvidersFrom(RoutingModule)],
});
Run Code Online (Sandbox Code Playgroud)

效果很好,服务没有任何问题。

这是包含此问题的基本示例的代码,有人可以解释为什么导入到根独立组件在这种情况下不起作用,但导入到 RoutngModule 可以解决问题吗?

https://stackblitz.com/edit/angular-fhpbvm?file=src/main.ts

angular-services angular angular-standalone-components

15
推荐指数
1
解决办法
9577
查看次数

如何在 Angular 应用程序生产构建中更改 i18n Angular 翻译模块文件的路径

我想将我的应用程序放在http://example.com/my_dir路径中,首先我必须向我的构建命令添加一个 option build --prod --base-href=/my_dir/。一切正常,但我只遇到翻译文件的问题。通常我将它们保存在 assets/i18n/ 目录中,如何将此文件的请求路径更改为 /my_dir/assetes/i18n ?

我使用 Angular 8 和 TranslateModule

这是我在 app.module.ts 中的配置

import {TranslateModule, TranslateLoader} from "@ngx-translate/core";
import {TranslateHttpLoader} from "@ngx-translate/http-loader";

// AoT requires an exported function for factories
export function HttpLoaderFactory(httpClient: HttpClient) {
  return new TranslateHttpLoader(httpClient);
}

imports: [
...,
TranslateModule.forRoot({
 loader: {
  provide: TranslateLoader,
  useFactory: HttpLoaderFactory,
  deps: [HttpClient]
 }
})
]
Run Code Online (Sandbox Code Playgroud)

已解决 我在此处添加了 TranslateHttpLoader(httpClient)

// AoT requires an exported function for factories
export function HttpLoaderFactory(httpClient: HttpClient) {
  return new TranslateHttpLoader(httpClient); …
Run Code Online (Sandbox Code Playgroud)

angular-i18n angular

5
推荐指数
0
解决办法
2711
查看次数