2015-04-28 8 views
5

मैं सामग्री डिजाइन में एमडीडियलॉग के विवरण पर पढ़ रहा था, और यह समझ में नहीं आया कि क्यों एक चेतावनी पॉपअप एक वादा वापस करेगा। क्या कोई बता सकता है कि एक उदाहरण के माध्यम से mdDialog द्वारा एक वादा कैसे किया जाता है?कोणीय सामग्री डिजाइन में एक संवाद पॉपअप द्वारा एक वादा कैसे किया जा सकता है?

$ mdDialog महत्वपूर्ण जानकारी के बारे में उपयोगकर्ताओं को सूचित या निर्णय लेने के लिए उन्हें आवश्यकता होती है करने के लिए एप्लिकेशन पर एक संवाद खुलता है:

सामग्री डिज़ाइन mdDialog के लिए दस्तावेज़ निम्नलिखित कहा। सेटअप के लिए दो दृष्टिकोण हैं: एक साधारण वादा एपीआई और नियमित ऑब्जेक्ट सिंटैक्स।

उत्तर

6

यह एक promise रिटर्न क्योंकि आप शायद close की तरह अलग अलग तरह से भविष्य की घटनाओं पर प्रतिक्रिया करने, (हल वादा) और cancel (इसे अस्वीकार) चाहते हैं।

mdDialod.show() एक वादा देता है, दस्तावेज में लिखा के रूप में है, तो आप सिर्फ (जैसा कि ऊपर उल्लेख किया है, $mdDialog सेवा पर close और cancel तरीकों के साथ) को हल या अस्वीकार कर सकते हैं।

Here is a simple example जैसा आपने अनुरोध किया था (यह देखने के लिए कंसोल खोलें कि यह प्रत्येक ईवेंट के लिए उपयुक्त टेक्स्ट कैसे लॉग करता है)।

+0

में क्या वादा उदाहरण आप दे दी है में वापस आ जा रहा है? – Sunil

+0

'$ mdDialog.show()'। इसे कॉल करने के ठीक बाद 'फिर' जंजीर को नोट करें। आपको कोणीय टीम https://docs.angularjs.org/api/ng/service/$q द्वारा वादे के कार्यान्वयन के बारे में पढ़ना चाहिए –

4

दस्तावेज़ थोड़ा अस्पष्ट थे, मैंने सोचा था, लेकिन यहां यह है कि मैं इसे कैसे काम कर रहा हूं।

baseController में:

$mdDialog.show({/*modalOptions*/}) 
    .then(function(data) { 
    console.log(data); 
    }, function(err) { 
    console.error(err); 
    }).finally(function() { 
    // finally block is optional for cleanup 
    }); 

मोडल नियंत्रक

$scope.cancel = function() { 
    $mdDialog.cancel('user pressed canceled'); 
}; 

$scope.ok = function() { 
    $mdDialog.hide({message: 'here is some result data'}); 
}; 
संबंधित मुद्दे