0

私は Angular2 を初めて使用します。Angular 1.3 の経験があり、各機能がどのように配線されているか (テンプレート構文、DI、ルーティング、観測可能) をそれぞれ取得するために、大規模な Angular 2 アプリを構築しようとしています。実際に私が直面している問題は、別のデータ サービスを作成し、すべての HTTP 呼び出しを配置し​​て他のコンポーネントに挿入しようとしているときに発生します。コードの下で、このエラーが発生します。EXCEPTION: No provider for ConnectionBackend!

また、ダッシュボードの要約で冗長なインポートを削除するのに助けが必要です.

ダッシュボードHTTPサービス

import {Http, Response} from 'angular2/http'
import {Injectable} from 'angular2/core'

@Injectable()
export class DashboardHTTPSevice {

    http:Http;
    constructor(http:Http){
        this.http = http;
    }

    getSummary(){
        return this.http.get('api/dashboardSummary').map((res: Response) => res.json());
    }

}

ダッシュボード概要

import {Component} from 'angular2/core';
import {Http, HTTP_PROVIDERS} from 'angular2/http';
import 'rxjs/Rx' ;
import {DashboardHTTPSevice} from 'app/services/dashboardHTTPSevice';


@Component({
    selector: 'dashboard-summary',
    templateUrl: './app/admin/dashboard/summary/summary.component.html',
    styleUrls: ['./app/admin/dashboard/summary/summary.style.css'],
    viewProviders: [HTTP_PROVIDERS],
    providers : [DashboardHTTPSevice]

})

export class SummaryComponent { 

    public dashboardSummary;
    constructor (public http: Http , dataservice : DashboardHTTPSevice){

    dataservice.getSummary().
            .subscribe(summary => {
                console.log(summary.data);
                this.dashboardSummary = summary.data;
            });        
    }
}

ブートストラップ

import {bootstrap}    from 'angular2/platform/browser';
import {ROUTER_PROVIDERS} from 'angular2/router';
import {AppComponent} from './app.component';
import {Http, HTTP_PROVIDERS} from 'angular2/http';
import {DashboardHTTPSevice} from 'app/services/dashboardHTTPSevice';


bootstrap(AppComponent , ROUTER_PROVIDERS , HTTP_PROVIDERS,DashboardHTTPSevice);

ソース: https://github.com/sabha/angular2_store

デモ: http://demoapp-angular2store.rhcloud.com/client/index.html

4

2 に答える 2

3

ROUTER_PROVIDERSHTTP_PROVIDERSおよびDashboardHTTPServiceを配列に入れます。

bootstrap(AppComponent , [ROUTER_PROVIDERS , HTTP_PROVIDERS, DashboardHTTPSevice]);

ここbootstrapで関数の署名を参照してください:

于 2016-01-04T14:08:15.410 に答える
1

この回答を更新したかっただけです。

Angular 2 RC リリース以降では、HttpModule をインポートする必要があります。

于 2016-10-06T10:26:30.630 に答える