Angular: エラーエラー:キャッチされていません(約束中):エラー:StaticInjectorError [e]:

作成日 2017年11月10日  ·  94コメント  ·  ソース: angular/angular

https://image.prntscr.com/image/4Huq_HhQTHyIjYKH0ztgKw.png

ERROR Error: Uncaught (in promise): Error: StaticInjectorError[e]: StaticInjectorError[e]: NullInjectorError: No provider for e!

最も参考になるコメント

HttpModuleとHttpClientModuleの両方をインポートすると、問題が修正されます。

import { HttpClientModule } from '@angular/common/http'; import { HttpModule } from '@angular/http';

全てのコメント94件

HttpModuleとHttpClientModuleの両方をインポートすると、問題が修正されます。

import { HttpClientModule } from '@angular/common/http'; import { HttpModule } from '@angular/http';

@ocombeは修正に取り組んでいます(より良いエラーメッセージ)

'@ angle / http'からimport {HttpModule}を追加します。 app.module.ts内

まだ私のために働いていません

また、私のために働いていない、同じエラー

こっちも一緒

私のために働いていない

アプリモジュールで
ステップ1インポートを追加
import {HttpModule} from '@ angle / http';
ステップ2:にHttModuleを追加します。
インポート:[
HttpModule
]、
....。

たぶんあなたはサービスに追加する必要があります
'@ angle / http'から{Http、HttpModule}もインポートします

同じ問題があります:(

ここで同じ問題(httpmoduleをインポートしましたが、まだ機能していません)

同じエラー、私も機能していません

このモジュールをアプリ全体で使用していなくても、 HttpClientModuleインポートすることで機能します。

プロバイダーで利用できるようにするには、プロバイダーセクションの下にapp.module.tsを追加する必要があります

問題が修正されました!! HUHU

@ jersonjohn-プロバイダーセクションに登録するサービス。 私は同じ問題に直面しており、上記の提案を読んだ後、すでにHttpClientとHttpClientModuleをapp.module.tsにインポートしています(使用していない場合でも)...

お知らせ下さい。

ありがとう
ディーパック

capture

プロバイダー:[
AuthGuard、
CookieService、
CompanyService、
PolicyService、
CommunicationService、
AuthenticationService
]

@ilivestrongすべてのサービスは、app.module.tsのプロバイダーセクションで構成する必要があります

このようなもの

プロバイダー:[
AuthGuard、
CookieService、
CompanyService、
PolicyService、
CommunicationService、
AuthenticationService
]

@ jersonjohn-プロバイダー配列にすべてのカスタムサービスとAngularサービスがすでにあります。 なぜ機能しないのかわからない。 リアクティブフォームを使用して(FormBuilderを使用して)ログインページを作成しようとしています。

何がそれを壊しているのかわからない...

@ilivestrong app.module.tsのインポート配列ReactiveFromsModuleを含めましたか

@ mumairofficial-はい、そうしました。 不思議なことに、私は新しいプロジェクトを作成しましたが、新しいルートガードを作成し、ルートガードに対してこのStaticInjectionErrorが発生するまで、プロジェクトは終了しました。

このルートガードも用意されています。 :(

ng-cliを使用して新しいサービスを作成した後、同じ問題が発生しました。 これにより、app.module.tsのプロバイダー配列にサービスが自動的に追加されます。

同じ問題が発生しましたが、「 app.module.ts 」に「HttpModule」をインポートした後、問題なく

  1. import {HttpModule} from '@ angle / http';
  2. インポート配列リストに「HttpModule」を追加します。

ありがとう。
共有し続けます。

'@ angle / http'からimport {HttpModule}を追加します。 Httpのapp.module.ts内
または
httpclientのapp.module.tsの「@angular / common / http」からインポート{HttpClientModule}を追加します

HttpModuleとHttpClientModuleの両方をインポートしましたが、それでも同じエラーが発生します。誰か助けてください。ルーティングを実装しようとしています。

@amitkprajapatiはHttpClientModuleをapp.module.tsインポートします

import { HttpClientModule } from '@angular/common/http'
///
@NgModule({
  imports: [ HttpClientModule ]
})

default

私も同じ問題を抱えていました。
私のアプリでは、この問題はこのようにしました。
ステップ1。 チェック。 app.Module.tsファイルの内部インポート[]

ステップ2。 作成したモジュールをチェックし、新しく作成したファイルのいずれかがインポートされていないかどうかを確認します。

  • 私の場合、サービスモジュールを管理する「コアモジュール」から「FreezerService」をインポートせずに「Effect」に登録しようとしました。

app.module.tsのproviders配列にFreezerServiceを追加します

ionicを停止し、「 ionic serve 」を再実行して、実際のエラーメッセージを表示します。

@ilivestrong私も同じです。
userListComponentにproviders: [UserService]を追加すると、修正されました。

@Component({
  selector: 'app-user-list',
  templateUrl: './user-list.component.html',
  styleUrls: ['./user-list.component.css'],
  providers: [UserService]
})

このコンポーネントは、それ自体がapp-moduleにインポートされる私のuser-moduleによってインポートされます

それが役に立てば幸い !

どのソリューションでも機能していません。

ファイル-----
error
system
appmodulets
homets
packagejson

@ kverma17追加Camera app.module.tsの側のプロバイダの配列にし、それを_import_するために忘れないでください:)

カメラがブラウザで正しく動作するかどうかはわかりませんが、投稿したエラーはなくなります。

申し訳ありませんが、現在旅行中のコンピュータにアクセスしていません

16:13時金、2018年1月19日には、ムハンマドUmair [email protected]
書きました:

@ kverma17https ://github.com/kverma17カメラをプロバイダーアレイに追加します
app.module.tsの側面でインポートすることを忘れないでください:)


あなたが言及されたので、あなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/angular/angular/issues/20339#issuecomment-358895567
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/ALjmrWMbECJKExNU3ohhoDk0OjiBPymLks5tME6ygaJpZM4QZw3x

上記のものは正しいです。app.moduleのプロバイダーで定義する必要があります
ファイル 。

2018年1月19日午後1時49分、「Jerson」 [email protected]は次のように書いています。

申し訳ありませんが、現在旅行中のコンピュータにアクセスしていません

16:13時金、2018年1月19日には、ムハンマドUmair [email protected]
書きました:

@ kverma17https ://github.com/kverma17カメラをプロバイダーアレイに追加します
app.module.tsの側面でインポートすることを忘れないでください:)


あなたが言及されたので、あなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
< https://github.com/angular/angular/issues/20339#issuecomment -358895567

またはスレッドをミュートします
ALjmrWMbECJKExNU3ohhoDk0OjiBPymLks5tME6ygaJpZM4QZw3x>


コメントしたのでこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/angular/angular/issues/20339#issuecomment-358896806
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AWbXx5egA7PdAAz_D-twVRcGtjKxLYTYks5tMFAdgaJpZM4QZw3x

データサービスを提供する必要があります
輸入 ...........
import {DataService} from '../ dataservice';

@成分({
セレクター: '......。
templateUrl:.......。
styleUrls:......、
プロバイダー:[DataService]
})

これらのエラーは、機能モジュールを使用するときに発生します。

上記のRouterModule.forRoot({})
RouterModule.forFeature( 'Items'、reducers)

ありがとう@jersonjohnあなたの提案は助けました:)

HttpだけでなくHttpModuleを追加していることを確認してください。 それが私の問題でした。 Httpを追加しても問題は解決しません。 次の段落に示すように、HttpModuleを追加する必要がありました。

'@ angle / http'からimport {HttpModule}を追加します。 app.module.tsにあります。これは、もちろん、以下のimports配列にも追加する必要があることを意味します。

'@ angle / http'からimport {Http}を追加する場合; app.module.ts自体では、エラーが表示されます...以下のimports配列/リストに参照を追加した場合でも。

最新バージョンのCLIは、何らかの理由で新しいパッケージを生成している場合、npmを使用するときにこれをビルドに追加しません。 以前にこれを行ったに違いありませんが、現在は行っていません。

このYouTubeシリーズプロジェクトをビルドしようとしている場合は、HttpModuleをapp.module.tsファイルにインポートする必要があります!!!
https://www.youtube.com/watch?v=pxv-0WeT44w

_参考までに_〜 HttpModule 〜は非推奨になり@angular/common/httpパッケージのHttpClientModuleが優先れます。 最新のものを使用してアップグレードを簡単にします:+1:

constructor()パラメータ内のコンポーネントにプロパティを移動したときにも同じ問題が発生しました。
戻したところ解決しました。

イオンサーブ...再び

上記の解決策とは別に...サービスからNavCtrlを削除することも役立つと思います。 コンポーネントのNavCtrlとサービス/プロバイダーの間に競合があるようです

abc

私の解決策は、component.tsのプロバイダーにサービスを追加することでした。

import {HttpModule} from '@ angle / http'; 次に、インポートにHttpModuleを追加します

、インポート:[
HttpModule、
BrowserModule、
IonicModule.forRoot(MyApp)、
]、
これで問題が解決します。
インポートすることもできます
import {HttpClientModule} from '@ angle / common / http'; 便宜上

コンポーネントが宣言されているモジュールでサービスを提供する必要があります。

@NgModule({
インポート:[
SharedModule、
RouterModule.forChild([
{パス: 'ログイン'、コンポーネント:LoginComponent}
])
]、
宣言:[
LoginComponent
]、
プロバイダー:[
AuthService
]

次に、コンポーネントでそれを参照し、コンストラクターに挿入します。 サービスにInjectableデコレータがあることを確認してください

必要な依存関係をインポートしなかった場合、Uncaught inPromiseエラーが発生します。
エラー:Uncaught(in promise):エラー:StaticInjectorError [AngularFireAuth]のエラーが発生しました
だから私はデータベース用にAngularFireDatabaseModule <----をインポートします
AngularFireAuthModule <---- AngularAuthの場合

import {AngularFireModule} from'angularfire2 ';
// AngularFireDatabaseの場合
import {AngularFireDatabaseModule} from'angularfire2 / database ';
import {AngularFireDatabase、FirebaseObjectObservable} from'angularfire2 / database ';
// AngularFireAuthの場合
import {AngularFireAuthModule} from'angularfire2 / auth ';
import {AngularFireAuth} from'angularfire2 / auth ';

@NgModule ({
インポート:[
AngularFireModule.initializeApp({
authDomain: '...'、
databaseURL: '...'、
storageBucket: '...'、
MessagingSenderId: '...'
})、
AngularFireDatabaseModule、
AngularFireAuthModule
]
})

私はこの問題を解決しました。
'app.module.ts'で
追加

'@ angle / common / httpから{HttpClientModule}をインポートします

と、
インポート:[
BrowserModule、
HttpModule、
HttpClientModule、
IonicModule.forRoot(MyApp)
]

ありがとう@mushinz

@jersonjohnは、プロバイダーが私のためにトリックをしてくれたので、サービスを追加するためのガイダンスに感謝します!

Angular 5.2.7でこのエラーが発生し、HttpClientModuleをapp.module.tsにインポートすると、問題が解決しました。
インポートにHttpClientModuleを追加することを忘れないでください:[]そしてサービスプロバイダーも忘れないでくださいプロバイダー:[]

ありがとう@ T-candy、
それは私のために働いた。

HttpModuleの代わりにHttpClientModuleをインポートするだけです

ionicはハンドル名を変更する必要があります。

イオン3.xを使用

iamは、Firebaseで構成するためにそれを使用しています。
app.module.tsのプロバイダーにAngularFireDatabaseを追加すると、問題は解決します。
:) :)

私がしたのは、app.moduleのプロバイダー配列にサービスを追加することだけでした。

私はまた、角度/からHttpModuleををインポートすることで、この作業を得た[email protected] app.module.tsに

import { HttpModule } from '@angular/http';
@NgModule({
    imports: [
       ...,
       HttpModule,
       ...
})

これは、アプリモジュールにサービスを注入していないためです。

app.module.tsの2か所でサービスに合格する必要があります
サービスのインポート
それらをプロバイダーに追加しました

'./providers/config.service'から{ConfigService}をインポートします。

...。
プロバイダー:[ConfigService]、
..。

このエラーは、angular2-cookieを導入したことが原因で発生しました。 「ngserve」では機能しますが、「ngbuild--prod」では機能しません。 解決策は、単にプロジェクトからそれを削除することでした。 とにかく実際には使用しませんでした。

次の2つの手順でこれを解決します。

import {BrowserModule} from '@ angle / platform-b​​rowser';
..。
インポート:[
BrowserModule、
]

以下のコードでコードを確認してください。

import {BrowserModule} from '@ angle / platform-b​​rowser';
import {NgModule} from '@ angle / core';
import {HttpClientModule} from "@ angle / common / http";

@NgModule({

宣言:[
....。
]、
インポート:[
BrowserModule、
HttpClientModule
]、
プロバイダー:[
....。
]、
ブートストラップ:[AppComponent]
})

上記のコードは問題を解決します

アプリモジュールで
'@ angle / forms'から{FormsModule}をインポートします。
import {Http、HttpModule} from '@ angle / http';
'@ angle / common / http'から{HttpClientModule}をインポートします

NgModulesのインポート
HttpModule、
HttpClientModule、
FormsModule、

そしてそれは私のために働いた

Httpの代わりにHttpModuleをプロバイダーとして使用します。 すべてのサービスを登録します。

私はこのエラーを理解するために多くの時間を費やし、すべての提案を試しましたが、それらのどれも私のコードでは機能しませんでした。 私にとっての解決策は、app.module.tsのプロバイダーにサービスを追加することでした。
プロバイダー:[
顧客サービス
]、

app.module.tsの変更により修正

import {BrowserModule} from '@ angle / platform-b​​rowser';
import {NgModule、ErrorHandler} from '@ angle / core';
import {IonicApp、IonicModule、IonicErrorHandler} from'ionic-angular ';
import {HttpClientModule} from '@ angle / common / http';

import {MyApp} from './ app.component';

import {UsersPage} from '../ pages / users / users';
import {ReposPage} from '../ pages / repos / repos';
import {OrganisationsPage} from '../ pages / organisations / organisations';

import {StatusBar} from '@ ionic-native / status-bar';
import {SplashScreen} from '@ ionic-native / splash-screen';
import {GithubUsersProvider} from '../ providers / github-users / github-users';
import {PeopleServiceProvider} from '../ providers / people-service / people-service';

@NgModule({
宣言:[
MyApp、
UsersPage、
ReposPage、
OrganisationsPage
]、
インポート:[
HttpClientModule、
BrowserModule、
IonicModule.forRoot(MyApp)、

]、
ブートストラップ:[IonicApp]、
entryComponents:[
MyApp、
UsersPage、
ReposPage、
OrganisationsPage
]、
プロバイダー:[
ステータスバー、
スプラッシュスクリーン、
{提供:ErrorHandler、useClass:IonicErrorHandler}、
GithubUsersProvider、
PeopleServiceProvider
]
})
エクスポートクラスAppModule {}

プロバイダー-サービス-ファイル

import {HttpClient} from '@ angle / common / http';
import {Injectable} from '@ angle / core';
import {Http、Response、Headers、RequestOptions、URLSearchParams} from '@ angle / http';
import {Observable} from'rxjs / Rx ';
import'rxjs / add / operator / map ';

import {User} from '../../ models / user';

@Injectable()
エクスポートクラスGithubUsersProvider {

githubApiUrl = ' https://api.github.com ';
コンストラクター(プライベートhttp:HttpClient){
console.log( 'Hello GithubUsersProvider Provider');
}

load():監視可能 this.http.get( ${this.githubApiUrl}/users )を返します
.map(res => }

}

代わりにHttpClientModuleを追加してください

「angular2-cookie / core」を削除し、cookieを取得および設定するための2つの関数を作成しましたが、問題は解決しました

authserviceで「@angular / http」から{Http}を使用した場合、
次に、「@ angle / common / http」から{HttpClient}に変更します。
authserviceのコンストラクターで、パラメータータイプをHttpからHttpClientに変更します

しかし、誰かが正しく答えましたが、私も正しい解決策を参照しています...。
1-app.moduleのバージョンが「6」の場合は「@angular / common / http」の「HttpClientModule」と「HttpClient」を使用します。

2-それ以外の場合は、「@ angle / http」の「HttpModule」と「Http」を使用します。

@MehdiZohrevndバージョン6はどうあるべきですか?

HttpClientModule importsを実行しても、同じ問題が発生します:/ plz help

こんにちは、私はこの方法で解決しました。Angular6ではhttpModuleは非推奨になり、Angularから削除されました。

これは私のapp.module.tsです

import { HttpClientModule } from '@angular/common/http';

次に、インポートに追加します。

imports: [
    APP_ROUTING,
    BrowserModule,
    RouterModule,
    HttpClientModule
  ],

私のサービスで

import { HttpClient, HttpHeaders, HttpClientModule } from '@angular/common/http';

そしてこれは私のために働く

乾杯!

上で述べたように、これは私のために働いた:
app.module.ts HttpClientModuleをインポートし、それをインポート配列に含めます。
サービスでは、HttpClient(コンストラクターではhttp: HttpClient )を使用します

Angular 6を使用して、すべての提案を試しました...問題は続きます... plsは提案します

私の場合、複数のリゾルバーがあり、リゾルバーの前後に[]を配置して間違った構文を使用していました(例:[{name1:resolver1 {、{name2:resolver2}])。 代わりに、構文は{name1:resolver1、name2:resolver2}である必要があります

これを行う代わりに[{name1:resolver1 { 、{name2:resolver2}]
これを試してみてください[{name1:resolver1 } 、{name2:resolver2}]

これは私のために働いた

@Injectable({
ProvidedIn: 'ルート'、
})

誰かが追加情報を必要とする場合に備えて、特にng testエラーに関する場合。
このエラーが発生しました:

エラー:StaticInjectorError(DynamicTestModule)[HttpClient]:
StaticInjectorError(プラットフォーム:コア)[HttpClient]:
NullInjectorError:HttpClientのプロバイダーがありません!

だからこれが私を助けたものです:

xyz.componentに追加しました。 spec.tsファイル

import { HttpClientModule } from '@angular/common/http';
import { ReactiveFormsModule } from '@angular/forms';
import { RouterTestingModule } from '@angular/router/testing';

TestBed.configureTestingModule({
      imports: [ HttpClientModule, ReactiveFormsModule, RouterTestingModule ], // new line
      declarations: [ BookCreateComponent ],
      schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})

実際には、

  • HttpClientModule注入は、 StaticInjectorErrorを取り除くのに役立ちます
  • ReactiveFormsModuleを挿入すると、 Can't bind to 'formGroup' since it isn't a known property of 'form'エラーを取り除くのに役立ちます。
  • RouterTestingModule注入は、 Can't bind to 'routerLink' since it isn't a known property of 'a'.を取り除くのに役立ちます

ノート:

  • Angular v6.0.0、Angular Material v 6.0.2、AngularCLIv6.0.0。
  • ただし、Angularv6.1.1およびAngularCLIv6.1.2でも検証されています。
  • ノードv10.8.0、npm v6.2.0、MacOS、Chromev68.0。

この問題を解決できた方法の1つは次のとおりです。

app.module.tsファイル内の「@angular / common / http」に存在する「HttpClientModule」を追加し、Httpリクエストを送信しているcomponent / servicetypescriptファイル内の「@angular / common / http」に存在する「HttpCleint」を追加します。

auth.guard.tsで

@Injectable({
    providedIn: 'root',
})

解決しました
import {HttpClientModule} from '@ angle / common / http';
import {HttpModule} from '@ angle / http';

インポート:[
BrowserModule、
HttpModule、
HttpClientModule、
IonicModule.forRoot(MyApp)
]、

miのために

問題が修正されました!
皆さん、ありがとうございました !

HttpModuleとHttpClientModuleの両方をインポートすると、問題が修正されます。

import { HttpClientModule } from '@angular/common/http'; import { HttpModule } from '@angular/http';

'@ angle / http'の{Http、Headers、またはその他}を使用している場合; app.compontent.tsファイルまたはapp.service.tsファイルまたはその他のfile.tsで、これらをservice.tsファイルまたはcomponent.tsファイルで使用する前に、app.module.tsにHttpModuleを追加する必要があります。

image
image
image

私のために働いていません。

angle-cliバージョンが高すぎます。問題が修正されました

angle-cliバージョンが高すぎます。問題が修正されました

どのように修正しましたか

angle-cliバージョンが高すぎます。問題が修正されました

どのように修正しましたか

@ angle / cliバージョンを6.2.8に減らします

正しい量は「@angular / http」からの{Http}です。 プロバイダーで

私はイオンバージョン3を使用しており、次のソリューションが機能しました。

_app_module.ts_内に追加: import { HttpClientModule } from '@angular/common/http';

次に、次のように、それをインポート配列に追加します。
imports: [ BrowserModule, IonicModule.forRoot(MyApp), HttpClientModule ],

https://github.com/angular/angular/issues/20339#issuecomment-353837569に感謝し

最終的に、HttpClientModuleとauth-guardファイルをapp.module.tsにインポートし、providers配列にauth guard依存関係を提供し、HttpClientModuleをimports配列に提供しました。

import { HttpClientModule } from '@angular/common/http';
import { AuthGuardService } from './app.auth-guard.service';

[...]

@NgModule({
  declarations: [...],
  imports: [ HttpClientModule, ... ],
  providers: [ AuthGuardService, AuthService, {
    provide: AuthServiceConfig,
    useFactory: getAuthServiceConfigs,
  }],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
  bootstrap: [AppComponent]
})

:@ angle / cliをダウングレードする必要はありませんでした

ありがとう 。 同じ問題が発生しましたが、修正されました

同じ問題がありますが、修正されていません。
私のファイルは次のとおりです。

  1. app.module.ts
    import {HttpClientModule} from '@ angle / common / http';
    import {HttpModule} from '@ angle / http';

インポート:[
..。
HttpClientModule、
HttpModule
]

  1. package.json

    "devDependencies":{
    "@ angle-devkit / architect": "〜0.12.3"、
    "@ angle-devkit / build-angular": "〜0.12.3"、
    "@ angle-devkit / core": "〜7.2.3"、
    "@ angle-devkit / schematics": "〜7.2.3"、
    "@ angle / cli": "7.2.4"、
    "@ angle / compiler": "〜7.2.2"、
    "@ angle / compiler-cli": "^ 7.2.6"、
    "@ angle / language-service": "〜7.2.2"、
    "@ ionic / angle-toolkit": "〜1.4.0"、
    "@ ionic / lab": "1.0.21"、
    "@ types / jasmine": "〜2.8.8"、
    "@ types / jasminewd2": "〜2.0.3"、
    "@ types / node": "〜10.12.0"、
    "codelyzer": "〜4.5.0"、
    "ジャスミンコア": "〜2.99.1"、
    "jasmine-spec-reporter": "〜4.2.1"、
    "カルマ": "^ 4.0.1"、
    "karma-chrome-launcher": "〜2.2.0"、
    "karma-coverage-istanbul-reporter": "〜2.0.1"、
    "カルマ-ジャスミン": "〜1.1.2"、
    "karma-jasmine-html-reporter": "^ 0.2.2"、
    「分度器」:「〜5.4.0」、
    "ts-node": "〜8.0.0"、
    "tslint": "〜5.12.0"、
    "typescript": "〜3.1.6"
    }、

私のためのこの仕事:
app.module.tsで
import {HttpModule} from '@ angle / http';

@NgModule

私のために助けた:
import {HttpClientModule} from '@angular/common/http';
インポートする- HttpClientModule
app.module.tsで

パイプもプロバイダーの配列に含まれている必要があることに注意してください。 パイプを共有モジュールに入れてエクスポートするとエラーが発生しましたが、プロバイダーとして追加するのを忘れていました。
providers: [MyPipe]

解決策は単純で、プロバイダー配列の下にサービスがない可能性があります。 開発モードで実行すると、プロバイダー配列の下で欠落しているサービスを正確に特定できます。 本番モードで実行している場合、エラーログにはプロバイダーの下で不足しているサービスが正確に表示されません。

この問題は、非アクティブのために自動的にロックされています。
同様の問題または関連する問題が発生した場合は、新しい問題を提出してください。

自動会話ロックポリシーの詳細をご覧ください。

_このアクションはボットによって自動的に実行されました。_

このページは役に立ちましたか?
0 / 5 - 0 評価