2016-02-03 16 views
5
angular 
.module('angProj') 
.controller('UserCtrl', 
    ['$scope', '$uibModal', 
     function ($scope, $uibModal) { 

      $scope.results = function (content, completed) { 
       var modalInstance = $uibModal.open({ 
         backdrop: 'static', 
         keyboard: false, 
         animation: $scope.animationsEnabled, 
         templateUrl: '/Scripts/angularApp/views/user-modal.html', 
         controller: 'UserModalCtrl', 
         resolve: { 
          items: function() { 
           return $scope.items; 
          } 
         } 
        }); 

       if (!completed || content.length === 0) { 
        return; 
       } 

     modalInstance.close(); 
     modalInstance.dismiss('cancel'); 

を($ uibModalを)閉じていない角度モーダルに。 (UI-ブートストラップ・TPLS-1.1.2.js)コードがエラーなしで細かい実行されますが、モーダルが開いたまま。ユーザーモーダルに私は、プログレスバーを表示しています..私は完了したことを追加し、ユーザーにモデルを閉じることはできませんよ

おかげで、未知のプロバイダ(同じUserCtrlに$ uibModalInstanceを注入することはできません) 私はui.bootstrap注入しています:私はまた$ uibModalInstanceを試みたが、コントローラがエラーをスローしますお時間を頂きまして。

+0

あなたのモーダルコントローラ 'controller:UserModalCtrl''からモーダルを閉じ、そこに' $ uibModalInstance'を入れてください。 – klskl

+0

@klskl私はthtをやっています...私はキャンセルボタンとそこからモーダルを閉じています..しかし、プロセスの完了時に私はモーダルを自動的に閉じるようにします。ユーザーインタラクションなし(キャンセルボタンのクリックなど) – Scorpio

+0

モーダルコントローラ(あなたの場合はUserModalCtrl)で$ uibModalInstanceを使用する必要があります... –

答えて

5

使用modalInstance.close()私は似たような行っているあなたのUserModalCtrlコントローラ

app.controller('UserModalCtrl', ['$scope', '$modalInstance' function($scope ,modalInstance { 
    $scope.close = function() { 
    modalInstance.close(); 
    }; 
}]); 
+0

thtsはうまく動作しますが、この条件の後で閉じるにはif(!completed || content.length === 0) – Scorpio

0

の内側に、私は思います。

私はこの

angular.module('myApp').controller('infoCtrl', function ($scope, $uibModalInstance, loading) { 

    $scope.editable = loading; 

    $scope.$watch('editable.status', function(newValue, oldValue) { 
    if (newValue == 'success'){ 
     // close modal 
     $uibModalInstance.close('ok'); 
    } else if (newValue == 'error') { 
     // show error message 
    } 
    }); 
}); 

のように見えます$modalコントローラを注入loadingこの

myApp.factory('loading', function() { 
    return { 
    status: '' 
    } 
}); 

とするとき、私は成功」に私のロードサービスの状態を変更するように見えるサービスである必要があり'(モーダルコントローラーではなく、どこからでも)モーダルが閉じられます。

これはあなたが求めていたものなのかどうか分かりませんが、何か不明な点がある場合は助けてもらいたいと思います。

EDIT:それでは、あなたが値isCompleted: falseとサービスを持っているとしましょう、あなたのモーダルコントローラにそのサービスを注入し、$watch機能を使用し、そのisCompletedtrueに変更した場合、その後、あなたはモーダルを閉じます。

関連する問題

 関連する問題