2016-08-11 9 views
0

私はすでにStackOverflowでこれに関する同様の質問を読んだことがありますが、私の状況では機能していないようです。私はAngularの最新バージョンです。角2 No LoadingServiceのプロバイダ

ローダーコンポーネント

import {Component, ElementRef, OnInit, OnDestroy} from '@angular/core'; 
import {CORE_DIRECTIVES} from "@angular/common"; 
import {LoadingService} from "../../services/global/loadingService"; 

@Component({ 
    selector: 'loader', 
    directives: [CORE_DIRECTIVES], 
    providers: [LoadingService], 
    template: ` 
    <div class ="blue"></div> 
    `, 
}) 

export class LoadingComponent { 
    public active: boolean; 

    public constructor(spinner: LoadingService) { 
    spinner.status.subscribe((status: boolean) => { 
     this.active = status; 
    }); 
    } 
} 

ローダサービス

import {Injectable} from '@angular/core'; 
import {Subject} from 'rxjs/Subject'; 
import 'rxjs/add/operator/share'; 

@Injectable() 
export class LoadingService { 
    public status: Subject<any> = new Subject(); 
    private _active: boolean = false; 

    public get active(): boolean { 
    return this._active; 
    } 

    public set active(v: boolean) { 
    this._active = v; 
    this.status.next(v); 
    } 

    public start(): void { 
    this.active = true; 
    } 

    public stop(): void { 
    this.active = false; 
    } 
} 

私のエラーは、次のとおりです。エラー:キャッチされない(約束で):LoadingServiceなしのプロバイダ!

ご協力いただければ幸いです。ありがとうございました!

+0

'CORE_DIRECTIVES'をリストする必要はありません。これらは、デフォルトではグローバルに使用できます。あなたのアクチュアルな問題については考えがありません。コードは正常に見えます。 –

答えて

0

ここに投稿したコードに問題はありません。私はそれを私のプロジェクトに入れて、問題なくロードします。あなたの問題は、あなたのSystemJS設定や、アプリが正しく読み込まれないようにするいくつかの他の問題の可能性が高いため、LoadServiceの注入方法を解決できません。 Chromeの開発ツールを使用して、アプリが読み込まれたときにコンソールを見て、他に問題があるかどうかを確認します。あるいは、PlunkrやJSFiddleのようなコードを実際に見ることができるように、あなたの完全でないサンプルをどこかに投稿してください。

関連する問題