2016-07-26 10 views
2

Httpサービスをコンストラクタ引数として設定しなくても、手動でインスタンス化できますか?角2 - インスタンシエート(Http)サービスを手動で行う

export class SimpleGridServer { 
    private http: Http; 
    constructor(public options: SimpleServerData) { 
     http = new Http(.../* Argument here */); 
    } 
} 

このクラスをインスタンス化するには、次のようにします。

var grid = new SimpleGridServer({/* options */}); 

私はSimpleGridServerをインポート私componentのHTTPサービスに依存しなくても、このクラスをインスタンス化します。 これが可能であれば、このシナリオの欠点は何ですか?

答えて

3

これが可能であれば、このシナリオの欠点は何ですか?

Angularのものを使用するには、Angular DIワークフローが必要です。

あなたは直接、角度のインジェクタへのハンドルを取得することができます

import {ReflectiveInjector} from '@angular/core'; 
import {HTTP_PROVIDERS, Http, Headers} from "@angular/http"; 
const injector = ReflectiveInjector.resolveAndCreate([HTTP_PROVIDERS]); 
const http = injector.get(Http); 
+0

私はそれがどのような角度2つの作品の方法だと思います。 – janmvtrinidad

+1

コンストラクタを使わずに角度2 DIを使うことができます。http://stackoverflow.com/a/37812906/1401751 –