2015-06-18 3 views
5

Я предполагаю, что это довольно простой ответ, но я не могу найти правильный синтаксис.AngularJS: вызов функции при закрытии модального

у меня открытие модального как так,

$scope.assignment = function (groupId) { 
    var modalInstance = $modal.open({ 
     templateUrl: 'assignment_form', 
     controller: 'GroupsAssignmentController', 
     windowClass: 'modal-user-window', 
     resolve: { 
      id: function() { 
       return groupId; 
      } 
     } 
    }); 

Все, что я хочу сделать, это функция запускается, когда модальный закрыта таким образом мой главный экран обновляется.

Я не уверен, что это связано с $ modal.close?

$modal.close({ 
    //getAllGroups(); 
    }); 
+0

$ modal.open (modalOptions) .result.finally (функция() { console.log ('модальный закрыло'); }); – nikhil

ответ

6
modalInstance.result.finally(function(){ 
    // do your work here 
}); 

Вы также можете использовать затем

then(successCallback, errorCallback, notifyCallback) 

SuccessCallback является excetuted когда обещание будет решена. errorCallback выполняется, когда обещание отклоняется. Наконец notifyCallback выполняется при уведомлении.

В случае модального углового ui, щелкнув по фону, вы получите отклоненное обещание. Имея это в виду, что ваш код может быть изменен на:

modalInstance.result.then(function() { 
    alert('Modal success'); 
}, function() { 
    alert('Modal dismissed'); 
}); 
+0

Привет, спасибо за ответ, просто быстрый вопрос. Как я действительно возвращаюсь из модального, чтобы он регистрировался как успех? В настоящий момент я закрываю свои модели, когда пользователь нажимает кнопку с помощью $ modalInstance.dismiss ('cancel'). Кажется, не может заставить его выполнить часть успеха. – user3407039

+0

Да, это по дизайну. Он выполнит функцию errorCallback - в приведенном выше коде, предупреждение («Модальное отклонение») будет называться – nikhil

+0

Да, я понимаю, почему это происходит, но что я могу изменить при закрытии модального так, чтобы он выполнил часть успеха? Кажется, не найти ответ на google. Есть ли другой способ увольнения, который я должен использовать? – user3407039

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