0

アプリ コンポーネントに挿入したサービスがあります。

app.component.ts

import { Component } from '@angular/core';
import {ProductService} from '../../../products/Classes/Product.Service';
import {TestService   } from '../../../products/Classes/test.service';

@Component({
    selector: 'pm-app',
    moduleId:module.id,
    templateUrl: '../View/PageTitle.html',
    providers:[ProductService,TestService]

})
export class AppComponent {
    pageTitle:string ='Acme Product Management';
 }

私のフォルダ構造は以下の通りです アプリのフォルダー構造

私のサービスは製品フォルダではなく、製品フォルダにあります。インポートステートメントで大文字に変更すると、アプリが「No Provider For ...」を壊します。なぜこれが起こっているのか誰か教えてください。理由がわかりません!!!

4

3 に答える 3

1

問題が見つかりました

私のapp.module で

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ProductListComponent }  from '../../../products/component/product-list';
import { AppComponent }  from '../Component/app.component';
import {FormsModule} from '@angular/forms';
import {ProductListFilterPipe} from '../../../products/component/product-list-filter.pipe';
import {StarComponent} from '../../star/Component/star.component';

@NgModule({
  imports: [ 
    BrowserModule,
    FormsModule 
    ],
  declarations: [ AppComponent,ProductListComponent,ProductListFilterPipe,StarComponent ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

私の ProductListComponent と ProductListFilterPipe のインポートには小文字の p がありました。アッパーに変更したところ、動作するようになりました。

要約: パスはある意味で大文字と小文字を区別します。私のテストでは、参照をフォルダーケースに一致させることではなく、参照の一貫性を保つことが重要です。

ありがとう

于 2017-01-06T12:53:16.573 に答える
1

ProduceServiceこのファイルでクラスの名前が付けられている場合、これは機能するはずです

import {ProductService} from '../../../Products/Classes/product.service';
于 2017-01-06T12:38:45.980 に答える