0

私は、私のangularjsアプリとui-bootstrapのルーティングのためにui-routerを使用しています。私のアプリは状態を入力する際に​​は、基本的にuibmodalinstanceを返すuibmodalを開きます。

$state.go('dashboard') 

私のコントローラの内部では状態を変更していますが、モーダルを閉じていません。 私は状態を終了するときにモーダルを閉じたいです。 i次のコードを書いていますが、コードの一部が機能しません。

MakeabidController.$inject = ['$stateParams','$state','$uibModalInstance','MakeabidService']; 

    function MakeabidController($stateParams, $state, $uibModalInstance, MakeabidService) { 
     var vm = this; 
     loadAll(); 
     vm.clear = clear; 
     vm.save = save; 

     function clear() { 
      $uibModalInstance.close(); 
     } 

     function save() { 
      // console.log(vm.comparableData); 
     } 

     function loadAll() { 
      vm.comparableData = MakeabidService.getobject(); 
      if(angular.isUndefined(vm.comparableData)){ 
//$uibModalInstance.close(); //It doesn't work 
        $state.go('dashboard'); //This is working 
       } 
      } 
     } 

誰かが私にあなたが状態を変更

答えて

0

にuibmodalを閉じるための解決策を教えてください - : 次のようにコーディングして動作していない一部のコメント

$stateProvider.state('makeabid',{ 
       parent: 'dashboard', 
       url: '/makeabid/{id}', 
       data: { 
        authorities: ['ROLE_USER'], 
        pageTitle: 'global.menu.makeabid' 
       }, 
       onEnter: ['$stateParams', '$state', '$uibModal', function($stateParams, $state, $uibModal) { 
        $uibModal.open({ 
         templateUrl: 'app/dashboard/makeabid/makeabid.html', 
         controller: 'MakeabidController', 
         controllerAs: 'vm', 
         backdrop: true, 
         size: 'lg' 
        }).result.then(function() { 
         $state.go('dashboard'); 
        }); 
       }] 
//this part doesnt work    
,onExit:['$uibModalInstance','$stateParams', '$state',function ($uibModalInstance,$stateParams, $state) { 
        $uibModalInstance.close(); 
       }] 
      }); 

私のコントローラがコーディングすることです参照してください。 $stateProviderイベントの一部にアクセスできます。

私は(のCoffeeScriptで、しかし、あなたのアイデアを得る)私のアプリケーションの一つに似た何かを

@$scope.$on '$stateChangeStart', (e, to, top, from, fromp) => 
    @$uibModalInstance.close() 

基本的には、モーダルを扱うお使いのコントローラでは、あなたは$stateChangeStartイベントを監視し、ときますあなたはそれをキャッチし、あなたはモーダルを閉じることができます。

は、私はちょうどこれらの呼び出しは推奨されていることに気づいhttps://github.com/angular-ui/ui-router/wiki状態変更イベント

に特にセクション--- EDIT ---

を参照してください。 UI-Router > 1.0を使用している場合は、移行方法に関するドキュメントがあります。https://ui-router.github.io/guide/ng1/migrate-to-1_0#state-change-events

+0

私が見つけたのは、回答者のためにscope.thanksではなくrootscopeを使用しています。 –

関連する問題