2016-11-03 6 views
0

jhipsterを使用してアプリケーションを生成し、いくつかのビューがあり、ポップアップには製品の詳細が表示されます。このポップアップをどのビューからでも開く必要があります。ポップアップは実際には、親を指定する2ページの角度ルートを使用して開かれていますが、この作業はうまくいきますが、アプリケーションのすべてのページで開く必要があります。angularjs内のさまざまな状態から同じモーダルを開く方法

+0

あなたはangle-ui-routerを意味します、そうですか?これはJHipsterが角度ルーティングではなく使用しているためです。とにかくイベントを放送し、モーダルを1か所で開くことができます。 –

+0

お返事ありがとうございます。まず、はい、あなたは正しいです、角度ui-routerであり、2番目です。答えが得られない場合は、ちょっと説明してください。 –

+0

https://stackoverflow.com/questions/25018339/broadcasting-an-event-in-angular-how-to-alter-flow-by-subscribing-to-event –

答えて

1

(特定のエンティティの)モーダルを開くためのモーダルサービスを作成することをお勧めします。

現在、モーダルロジックは、JHipsterが使用する唯一の場所であるため、XXX.state.jsの中にあります。代わりに、フォーカス取得時におけるモーダル関連する依存関係を注入する、

onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) { 
    //... 
} 

ようにあなたは、異なるサービスにそれらを注入し、openメソッドを公開し、これらと

onEnter: ['MyEntityModalService', function(myEntityModalService) { 
    myEntityModalService.open(); 
} 

のように、状態にこのサービスを注入すべきです最初にフロントエンドの動作を変更するのではなく、ロジックをサービスに切り離しています。あなたは今すぐ州に注入することができるので、あなたはどこにでもそれを注入することができます。

関連する問題