2017-09-30 4 views
0

最初の月ではありませんので、「サービスをインポートする場合は必ず」と言ってください。どのコンポーネントからでもapp.componentからサービスからメソッドを呼び出すことができます。角2.どこからでもサービスにアクセスできますが、app.component

エラーなし

private generalService: GeneralService 

を宣言するとき

import { GeneralService } from './services/generalservice.service'; 

ノーエラーをインポート私は@Componentでない場合でも({...})

providers: [GeneralService] 

コマンドラインにエラーはありません... 何らかの理由でブラウザに..

Uncaught Error: Can't resolve all parameters for GeneralService: ([object Object], [object Object], [object Object], ?). 
at syntaxError (compiler.es5.js:1690) 
at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver._getDependenciesMetadata (compiler.es5.js:15765) 
at ............. 

エラーを表示する機能はありません。コンストラクタでサービスを宣言した直後に表示されます。

私はちょうど2番目のスターバックスのVenti-Americanoを終えました。しかし、これについて私の脳にはまだ光がないので、何か教えてください。ありがとう。

+0

サービスとコンポーネントのコンストラクタコードも追加できますか? – Vega

+0

確か..サービス----コンストラクタ( プライベートデシベル:AngularFireDatabase、 公共afAuth:AngularFireAuth、 民間ルータ:ルータ、 プライベートappComponent:AppComponent ){ this.user = afAuth.authState。 } ---- app.component ------コンストラクタ( 公共afAuth:AngularFireAuth、 プライベートルータ:ルータ、 プライベートDB:AngularFireDatabase、 プライベートgeneralService:GeneralService ){ this.user = afAuth。 authState; this.profiles = db.list( '/ users'); this.threadsAreLoaded = false; this.threadToSee = false; } –

+0

申し訳ありませんが、あまり編集されていないコメントです。私はどのようにわからない) –

答えて

0

あなたはAppComponentにサービスを挿入したい場合は、サービスがAppComponent@Component(...)または非レイジーロードされたモジュールの@NgModule(...)で提供される必要があります。

+0

ガンターそれは@NgModuleにあります。 –

+0

問題は 'GeneralService'のコンストラクタ、またはコンストラクタが必要とする3つの依存関係にあり、' GeneralService'以上と同じレベルで提供する必要があります。 –

+0

私はVegaが言ったようにサービスのコンストラクタでコンポーネントを宣言していると思います - private appComponent:AppComponent。この行は削除され、今度はすべてが再び機能します!))同じレベル以上で提供すること - 同じレベルにあります。 –

関連する問題