2015-02-05 2 views
6

क्या कोई ऐसा ईवेंट है जो पॉपअप बंद होने पर आग लगती है।ngDialog - closeModal event - angularjs

मोडल एक क्लिक ईवेंट पर खुलता है। मोडल का एक करीबी बटन होता है, लेकिन जब उपयोगकर्ता मोडल div के बाहर कहीं भी क्लिक करता है तो भी बंद हो जाता है।

पॉपअप बंद होने पर कुछ क्रियाएं करना चाहेंगे। मुझे पता है कि उस करीबी बटन के क्लिक पर फ़ंक्शन कैसे लिखना है, लेकिन अगर कुछ अन्य क्रियाओं से मोडल बंद हो रहा है तो क्या होगा।

app.controller('MainCtrl', function ($scope, ngDialog) { 
$scope.clickToOpen = function() { 
ngDialog.open({ template: 'popupTmpl.html' }); 
}; 
}); 

उत्तर

12

'preCloseCallback' गुजर का प्रयास करें: -

ngDialog.open({ template: 'popupTmpl.html', preCloseCallback:function(){ /* Do something here*/} }); 

आशा इस मदद करता है!

+0

इस शांत है। धन्यवाद। – Cody

+0

धन्यवाद @ कोडी। यह जानने में अच्छा लगा कि इससे मदद मिली! – amitthk

1
$modal.open({ 
    ... // other options 
    backdrop : 'static' 
}); 

सटीक उत्तर। बस backdrop : 'static' का उपयोग करें और आपका मोडल केवल बंद बटन पर क्लिक करके बंद हो जाएगा। और हाँ, यह एक अच्छा सवाल था। कई डेवलपर ऐसी तरह की मूर्खतापूर्ण गलती करते हैं लेकिन आप उनसे नहीं हैं। अगर यह मदद नहीं करता है तो मुझे जवाब दें। ऐसा करने के कई तरीके हैं।

+1

धन्यवाद। मैंने बैकड्रॉप की कोशिश की लेकिन मोडल अभी भी बंद हो गया जब इसके बाहर कहीं भी क्लिक किया गया। – Qwerty

+4

ngDialog.open ({टेम्पलेट: 'popupTmpl.html', closeByDocument: false, preCloseCallback: function() {/ * यहां कुछ करें * /}}); ऐसा करो और मुझे बताएं कि यह काम करता है या नहीं। मेरा स्काइप: er.chourasiya – rahul

+0

हां यह काम किया .. – Qwerty

1

बस बंद करेंडब्लॉक दस्तावेज़: संवाद.ऑपेन के अंदर गलत है ताकि जब उपयोगकर्ता मोडल div के बाहर कहीं भी क्लिक करता है तो संवाद बंद नहीं होगा।

उदाहरण कोड

ngDialog.open({ 
    id: 'fromAService', 
    template: 'firstDialogId', 
    controller: 'InsideCtrl', 
    data: { foo: 'from a service' }, 
    closeByDocument: false 
});