私はIonic 3アプリを作成しています(Angular 4を使用しています)。私は実際のページロジックからロケーションサービスを抽出して再利用できるLocationProviderを作成しました。Angular4で@Injectable()を連鎖させる方法はありますか
My LocationProviderは@ ionic-native/geolocation(ジオロケーションプロバイダ)を使用します。
@NgModule({ providers: [LocationProvider] })
経由でロケーションプロバイダーをページに挿入すると、ジオロケーションプロバイダが見つかりませんというエラーが表示されます。 LocationProviderを使用するたびにジオロケーションプロバイダを含める方法はありますか?または、いつもproviders:[LocationProvider, Geolocation]
が必要ですか?
私はこれが特定ではありませんが(角度4)、両方のプロバイダをNgModule
に記載する必要があると思いますか?
「プロバイダはラップすることもできます」と言うと、 '@NgModule({providers:[LocationProvider、Geolocation]})'をエクスポートすることを意味しますか?そして、それを '@NgModule({imports:[LocationProviderModule]})'経由でインポートしますか? Geolocationを10回読み込むことを心配する必要がありますか? – Matt
それは正しいです。遅延ロードされたモジュールを扱っていない限り、心配する必要はありません。すべての通常のモジュールは同じインジェクタを共有します。参考までにhttps://stackoverflow.com/questions/39031284/angular-2-injector-hierarchy-and-ngmoduleをご覧ください。 – estus
それは理にかなっています。子インジェクタがメインインジェクタと異なる値を格納するのを心配する必要がありますか? (ng4のためにこれで多くを見つけることができません、元のng1のものを見つけるように思われます) – Matt