2015-07-23 2 views
4

Я использую Angular UI Bootstrap. Если модальная функция открыта, я бы хотел отобразить true. Если он не открыт, я бы хотел отобразить false. Есть ли способ сделать это в HTML?Как узнать, открыт ли модальный в Угловом UT Bootstrap

Я попытался, используя следующий код, но это не так:

<code>myForm.$modalStack.opened={{myForm.$modalStack.opened}}</code> 

Любые мысли о том, как сделать это правильно?

Ниже соответствующий код, я использую, чтобы вызвать модальный:

HTML:

<button ng-click="myForm.agreement()"> 

код в контроллере:

.controller('MyFormCtrl', 
    function ($location, $stateParams, $modal, $scope, $http) { 
    var myForm = this; 
    // . . . 

    myForm.agreement = agreement; 

    function agreement() { 

     $modal.open({ 

      templateUrl: 'views/agreement.html' 
    }) 
}); 
+0

где вы называете модальный, чтобы открыть и все такое. покажите, что код – ajmajmajma

+0

@ajmajmajma Я добавил соответствующий код. Это то, что вы имели в виду? – Ken

+0

Ответ добавлен, вам нужно будет установить $ modal открытым для var, а затем установить еще один булев, чтобы вызвать. – ajmajmajma

ответ

10

opened имущество, возвращенное $modal.open обещание вы можете подключиться.

Таким образом, используя свой пример, смотрите здесь - http://plnkr.co/edit/PsEqTIy8CDUU88HMLxbC?p=preview

$scope.modalOpen = false; 
$scope.open = function (size) { 
    var modalInstance = $modal.open({ 
     animation: $scope.animationsEnabled, 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl', 
     size: size, 
     resolve: { 
      items: function() { 
       return $scope.items; 
      } 
     } 
    }); 

    modalInstance.opened.then(function() { 
     $scope.modalOpen = true; 
    }); 

    // we want to update state whether the modal closed or was dismissed, 
    // so use finally to handle both resolved and rejected promises. 
    modalInstance.result.finally(function (selectedItem) { 
     $scope.modalOpen = false; 
    }); 
}; 

Вы хотите назвать обещания, а затем делать все, что вам нужно. .opened - это обещание, когда модальный открывается, и .result - это обещание, когда модальный закроется. Поэтому, используя эту идею, вы должны использовать $scope.modalOpen как ваш логический.

Смежные вопросы