2016-07-28 10 views
0

は、私は、エラーを見ている:角度2プロバイダ例外

One or more of providers "CategoriesComponent" were not defined: [?, [object Object], BrowserXhr, [object Object], [object Object], XHRBackend, [object Object]].

私はこの問題を解決するのに役立ちます。多くのおかげで以下

は私のコードです:

category.services.ts

import { Injectable } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/catch'; 


import { Category } from './index'; 
// import * as global from '../shared/global/globals'; 

@Injectable() 
export class CategoryService { 
    private _baseUrl: string = '/api/v1/category/list'; 

    constructor(private http: Http) { 
     // this._baseUrl = global.BASE_URL; 
    } 

    getCategories(): Observable<Category[]>{ 
     return this.http.get(this._baseUrl) 
      .map((res: Response) => { 
       return res.json(); 
      }) 
      .catch(this.handleError); 
    } 

    private handleError(error: any) { 
    var applicationError = error.headers.get('Application-Error'); 
    var serverError = error.json(); 
    var modelStateErrors: string = ''; 

    if (!serverError.type) { 
     console.log(serverError); 
     for (var key in serverError) { 
     if (serverError[key]) 
      modelStateErrors += serverError[key] + '\n'; 
     } 
    } 

    modelStateErrors = modelStateErrors = '' ? null : modelStateErrors; 

    return Observable.throw(applicationError || modelStateErrors || 'Server error'); 
    } 
} 

categories.component.ts

import { Component, OnInit } from '@angular/core'; 
import { HTTP_PROVIDERS } from '@angular/http'; 
import { Category, CategoryService } from './index'; 

@Component({ 
    // moduleId: module.id, 
    selector: 'categories', 
    templateUrl: 'views/category/categories-component', 
    providers: [CategoryService, HTTP_PROVIDERS] 
}) 
export class CategoriesComponent implements OnInit { 
    categories: Category[]; 

    isCollapsed = false; 

    constructor(private categoryService: CategoryService) {} 

    ngOnInit() { 
     this.categoryService.getCategories() 
      .subscribe((categories: Category[]) => { 
       this.categories = categories; 
      }, 
      error => { 
       console.log(error); 
      }); 
     // console.log('======='); 
    } 

    toggle(){ 
     this.isCollapsed = !this.isCollapsed; 
    } 
} 

navbar.component.ts

import { Component } from '@angular/core'; 
import { ROUTER_DIRECTIVES } from '@angular/router'; 
import { CategoriesComponent } from '../../category/index'; 

@Component({ 
    // moduleId: module.id, 
    selector: 'navbar', 
    templateUrl: 'views/navbar/navbar', 
    directives: [ROUTER_DIRECTIVES, CategoriesComponent] 
}) 
export class NavbarComponent { 

} 

答えて

1

あなたは提供する必要はありませんお使いのプロバイダの配列内のサービス.....発生するエラーが原因こののみ...ちょうどあなたのcategories.component.tsファイルでこれを変更することです: - uはそれを提供していない場合

providers: [CategoryService, HTTP_PROVIDERS] to===> providers: [HTTP_PROVIDERS]

この作品アプリのコンポーネントまたはmain.tsファイル...に

uは変更する必要がある2つ目は、以下のようにあなたのcategoryserviceインポートのパスです: -

import { CategoryService } from '.path to category.service'

は、それが正常に動作しますが、その後:)

+0

私はCategoを削除しましたriesServiceをプロバイダから取得しましたが、別のエラーが表示されます。CategoriesComponent :(?)のすべてのパラメータを解決できません。 – user3027246

+0

私はそれを取得した問題は、あなたがur app.componentファイルでそれを提供していない場合、あなたがurプロバイダの配列からそれを削除しない場合、 – user3027246

+0

角2で許可されていないindex.tsからCategoryServiceをインポート...です私が上記の2番目のこと –

関連する問題