まず、Context
クラスとSingleton
があります。 Context
は、HttpとEventsのインスタンスをSingleton
に与えることをお勧めします。インジェクタを角度2で使用しているプロバイダがありません
import { Http } from 'angular2/http';
import { Injectable, Injector, Provider, provide } from 'angular2/core';
import { Events } from 'ionic-angular';
@Injectable()
export class Context{
constructor(private http: Http, private events: Events){}
}
export class Singleton{
private static INSTANCE: Singleton;
private context: Context;
constructor(){
if(Singleton.INSTANCE){
throw new Error();
}
let injector = Injector.resolveAndCreate([
Https,
Events
])
this.context = injector.get(Context);
}
}
ただし、私がコンパイルして検査するとき。 「プロバイダなし」のエラーが発生しました。したがって、私はどのようにプロバイダを追加できますか?
第2に、Singleton
でhttpとイベントをどのように使用できますか? Singleton
のthis.http
が動作しないと思います。あなたにもContext
を設定する必要が
なぜ、例えば提供プロバイダからのインスタンスを取得することができるようにするためにAngularsインジェクターを注入する必要が
は、「それはコンストラクタでそれらを受け入れることができないので。」ということでしょうか? –
@GünterZöchbauerまあ、それは受け入れることができます。しかし私は手動で「新しい」ものを望んでいません。 –
それから、 'Context'を' Singleton'に注入してください。私の更新された答えを見てください。 'Context'と' Singleton'をどこかに '@App({...、providers:[Singleton、Context]})'を提供する必要があります。 –