2015-06-18 44 views
5

Bunun çok basit bir yanıt olduğunu düşünüyorum, ancak doğru sözdizimini bulamıyorum.AngularJS: modal'i kapatırken işlev çağrısı

Ben

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

yapmak istediğim tüm modal yüzden benim ana ekran güncellenir kapatıldığında bir fonksiyon çalıştırmak, bu nedenle gibi benim modal açıklığı var.

Bunun $ modal.close içerip içermediğinden emin değilim?

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

$ modal.open (modalOptions) .result.finally (function() { console.log() 'modal kapattı'; }); – nikhil

cevap

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

da kullanabilirsiniz ardından

then(successCallback, errorCallback, notifyCallback) 

söz çözüldüğünde SuccessCallback excetuted edilir. errorCallback, vaat reddedildiğinde yürütülür. Nihayet notifyCallback bildirildiğinde gerçekleştirilir.

Açısal modelin durumunda, arka planı tıklamak reddedilmiş bir sözle sonuçlanacaktır. Bu düşünceyle, kodunuz şeklinde değiştirilebilir:

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

Merhaba, yanıt için teşekkürler, sadece hızlı bir takip sorusu. Bir başarı olarak kayıt yaptırmak için aslında bir modaldan nasıl dönebilirim? Şu anda, kullanıcı bir düğmeyi $ modalInstance.dismis ('iptal') ile tıklattığında modelleri kapatıyorum. Başarı bölümünü icra etmek için görünmüyor. – user3407039

+0

Evet, bu tasarım gereğidir. ErrorCallback işlevini yürütecek - yukarıdaki kodda, uyarı ('Modal reddedildi') – nikhil

+0

olarak adlandırılacaktır. Neden olduğunu anlıyorum, ancak modalın kapanması sırasında neleri değiştireceğim? Google'da bir cevap bulmak için görünmüyor. Kullanmamı reddetmenin farklı bir yöntemi var mı? – user3407039

İlgili konular