2016-11-03 7 views
0

VS2015 Webプロジェクトでng2アプリケーション用に開始した設定を再訪しています。それはある時点で働いていた。アプリはTypescriptを使用し、期待どおりにビルドします。たとえば、エラーなしで構築されますが、tsにランダムな文字を置くと失敗し、tsが期待どおりに構築されているように見えます。ランタイム例外:「ReportServiceのプロバイダがありません」

私はアプリケーション内にReportServiceを持っていますが、すべてのrefsをコメントアウトしましたが、投稿タイトルにランタイムエラーが表示されます。まず、ReportServiceリファレンスをコメントアウトし、エラーなしでロードするページを取得してから、その後にReportServiceを再導入します。私がここで何が欠けているかもしれないか?あなたのサービスがあなたのコンポーネントを持っている、またはmoduleによって与えられたmoduleによってインポートするmoduleによって提供されていないとき

+0

コードを表示せずに難しいです。 –

+0

ここにzipファイルhttps://www.dropbox.com/s/8qv3cq711nclrzp/basic-angular-2.zip?dl=0があります。あなたは見てみて、その問題が何であるかを聞かせてください。 – user7066345

+0

誰かがランダムなzipファイルをインターネットからダウンロードする可能性は低いです。誰かがあなたのために完全なプロジェクトをデバッグすることはほとんどありません。 http://stackoverflow.com/help/mcveを参照してください。 Plunkerで再現できますか? –

答えて

0

No provider for xxxは、多くの場合、表示されます。

例:

import { NgModule } from "@angular/core"; 
import { MyService } from "./my.service"; 
import { MyComponent } from './my.component'; 

@NgModule({ 
    declarations: [ MyComponent ], 
    providers: [ MyService ] 
}) 
export class MyModule {} 

今、あなたはMyComponentMyServiceを使用することができます。

import { Component } from "@angular/core"; 
import { MyService } from "./my.component"; 

@Component() 
export class MyComponent { 
    constructor(private service: MyService) {} 

    public someMethod(): void { 
     this.service.someMethod(); 
    } 
} 

あなたはまた、別のモジュールでそれを使用するmoduleからそのサービスをエクスポートすることができます。

import { NgModule } from "@angular/core"; 
import { MyService } from "./my.service"; 
import { MyComponent } from './my.component'; 

@NgModule({ 
    declarations: [ MyComponent ], 
    providers: [ MyService ], 
    exports: [ MyService ] 
}) 
export class MyModule {} 

今すぐを使用できますインポートするとどこでもMyModule

import { NgModule } from "@angular/core"; 
import { MyModule } from "./my.module"; 
import { AnotherComponent } from './another.component'; 

@NgModule({ 
    imports: [ MyModule ] 
    declarations: [ AnotherComponent ], 
}) 
export class MyModule {} 


import { Component } from "@angular/core"; 
import { MyService } from "./my.component"; 

@Component() 
export class AnotherComponent { 
    constructor(private service: MyService) {} 

    public anotherMethod(): void { 
     this.service.someMethod(); 
    } 
} 
関連する問題