私のアプリケーションは、既に開いている場合はモーダルを開くことができます。それが当てはまる場合、私はそのモーダルを閉じて、それが完了した後に新しいモーダルを開くことを望みます。モーダルを開くためにブートストラップUIモーダルが開いているかどうかを確認するにはどうすればいいですか? - AngularJS
サービス:
app.service('ModalService', function($uibModal) {
this.open = function(size, template, content, backdrop, controller) {
var modalInstance = $uibModal.open({
animation: true,
templateUrl: content,
windowTemplateUrl: template,
controller: controller,
backdrop: backdrop,
size: size,
resolve: {}
});
return modalInstance;
};
その後、私は1を開く:
var m = ModalService.open('lg', '', 'ng-templates/modal.html', true, 'ModalController');
そして私はそれを閉じることができます:
m.close();
私はm.closeを使用することができます()をモーダルを開くのと同じスイッチ/ケース内で実行します。コードの後の別のif文でそれを閉じたい場合、mは未定義です。
とにかく。モーダルが開いているかどうか確認できますか?
d.$$state.status = 1
d.$$state.value = true
しかし、私は他の場所で私のアプリで変数mにアクセスすることはできませんので、私はそれをチェックすることはできません:私は(m)をCONSOLE.LOG場合、このあります。
かなりきちんとしたが、それに打撃とレポートを提供しますバック。ありがとう。 – Bento
これは動作します。どのように私はモーダルを閉じることができますか?私は今、var mを$ rootScope.mに置き換えました。これにより、アプリケーションのどこにでもmにアクセスすることができます。 より良い解決策があるかどうかわかりません。 $ rootScope.m = ModalService.open( 'lg'、 ''、 'ng-templates/modal.html'、true、 'ModalController'); 次に、私はこうします:$ rootScope.m.close(); – Bento
'open'のような' modalInstance'をローカル変数として保存し、追加の関数(例えば: 'ModalService.closeModal()')を実装し、サービス内のモーダルを閉じます。 質問は、その範囲の外側からモーダルを閉じたいという理由です。 –