私の答えhereからグローバルデータを共有するためのサービスを注入する方法の例:グローバル・データを保持するために、プロバイダを使用し
はイオン2ベータ6で私のために働いている、と私はそれがあると信じてionic g provider GlobalService
お知らせ生成されたサービスは、トンであなたのサービスを注入@Injectable
で飾られている方法:角2
でのお勧めは、コマンドラインからプロバイダを生成します彼は@App
クラスです;あなたはプロバイダの配列にそれを宣言することにより、次の操作を行います。
@App({
templateUrl: 'build/app.html',
providers: [GlobalService] ,
config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
これは、すべてのページにづけしているプロバイダの単一のインスタンスを作成します。あなたがそれを使用する必要がどこに、は、プロバイダの配列に宣言し、なくんページのコンストラクタに:
@Page({
templateUrl: 'build/pages/new-page/new-page.html',
})
export class NewPage{
constructor(public globalService: GlobalService) {
}
someFunction(){
this.globalService.someGlobalFunction();
}
私はまだ私のページファイルにグローバルサービスをインポートする必要がありますか?試してもエラーが出ますが、インポートしようとするとファイルが見つからないようです。私は依存性注射の明白な一歩を欠いていますか?私はまだこれでかなり新しいです。 – discodane
はい、次のような行をインポートする必要があります。 '../../ providers/global-service/global-service''から' import {GlobalService} 'をインポートするには、正しいパスに調整する必要がありますあなたのアプリで –
私は1つの部分が欠落しています。アプリケーション側のメニューでロールの変更が表示されたら、 'GlobalService'で' setCurrentRole'関数を呼び出しますが、currentRoleが変更されたことを「新しいページ」に通知するにはどうすればよいですか? – discodane