2016-12-21 4 views
0

(Angular2)コンポーネントにサービスから値を渡すは、私がサービスを持って

export class MyComponent { 

    statusFromServer: number; 

    constructor(private router: Router, @Inject(UploadedFile) private _uploadedFile: UploadedFile){ 
    }  
    .....  
    handleUpload(): void { 

     this.statusFromServer = this._uploadedFile.getGood(); 
     console.log(this.statusFromServer); 
    }   
} 

私はthis.status缶を取得するために何をすべきコンポーネントにアクセスして印刷するか?私はここで間違って何をしていますか?

答えて

0
@Inject()  
export class MyService{ 

これは私がMyService.statusは、いくつかの非同期呼び出しによって設定されていないことを前提としても解決できない場合

@Injectable()  
export class MyService{ 
constructor(private router: Router, @Inject(UploadedFile) private _uploadedFile: UploadedFile){ 

constructor(private router: Router, private _uploadedFile: UploadedFile){ 

をする必要がありますする必要がありますまだ利用可能な場合this.statusFromServer = this._uploadedFile.getGood();が実行されます。

+0

未知(約束):エラー:文字列のプロバイダがありません! エラー:文字列のプロバイダがありません! at NoProviderError.BaseError [as constructor] –

+0

これはあなたの質問のコードに起因するものではありません。前の質問では、 'string'型のパラメータ(または' boolean'、 'number'、' Object')を持つクラスのインスタンスを挿入することはできません。これらのためには、実際に '@Inject( 'somename')と一致するプロバイダが必要です。 –

0

以下試してみてください、

get handleUpload(): void { 
    return this._uploadedFile.getGood(); 
} 

・ホープ、このことができます!

関連する問題