2016-04-14 16 views
7

का उपयोग कर रहा SweetAlert2 उपयोग कर रहा हूँ और मैं निम्न त्रुटिUncaught TypeError: मीठा चेतावनी

Uncaught TypeError: Cannot read property 'then' of undefined

हो रही है के रूप में SweetAlert पेज में सुझाव दिया जब मैं ठीक उसी कोड का उपयोग अपरिभाषित की संपत्ति पढ़ा नहीं जा सकता 'फिर'।

swal({ 
title: 'Are you sure?', 
    text: "You won't be able to revert this!", 
    type: 'warning', 
    showCancelButton: true, 
    confirmButtonColor: '#3085d6', 
    cancelButtonColor: '#d33', 
    confirmButtonText: 'Yes, delete it!', 
    cancelButtonText: 'No, cancel!', 
    confirmButtonClass: 'btn btn-success', 
    cancelButtonClass: 'btn btn-danger', 
    buttonsStyling: false, 
    closeOnConfirm: false, 
    closeOnCancel: false 
}).then(function(isConfirm) { 
    if (isConfirm === true) { 
    swal(
     'Deleted!', 
     'Your file has been deleted.', 
     'success' 
    ); 
    } else if (isConfirm === false) { 
    swal(
     'Cancelled', 
     'Your imaginary file is safe :)', 
     'error' 
    ); 
    } else { 
    // Esc, close button or outside click 
    // isConfirm is undefined 
    } 
}) 

मेरे पास पृष्ठ के अंत में कोड है। मैं इसे रेल ऐप पर रुबी में उपयोग कर रहा हूं। मैंने अन्य पदों में सुझाए गए मान को वापस करने का प्रयास किया है, लेकिन यह समस्या को ठीक नहीं करता है

+0

क्या आपने संबंधित जेएस फ़ाइल का संदर्भ जोड़ा था? –

+0

क्योंकि इसका मतलब है कि संदर्भ में swal नहीं है। तो इसका मतलब यह है कि जावास्क्रिप्ट फ़ाइल को फ़ाइल में संदर्भित नहीं किया गया है या swal ठीक से नहीं बनाया गया है। –

+0

@ हिरादनिकू मैंने निंदा की है। यह वास्तव में मोडल दृश्य पॉप अप करता है। लेकिन पुष्टि/रद्द करने के बाद यह नहीं जाता है। – marimaf

उत्तर

6

ऐसा लगता है कि sweetalert2 कार्यान्वयन मूल वादे एपीआई का उपयोग करता है, और इसमें कोई भी पॉलीफ़िल शामिल नहीं है। मतलब कुछ ब्राउज़रों में काम नहीं कर सकता है। यहां तक ​​कि github पृष्ठ भी एक ही त्रुटि दिखाता है। जब मैं क्रोम में कोशिश करता हूं तो ठीक काम करता है, लेकिन आईई 11 में काम नहीं करता है। मैं कौन सा ब्राउज़र/समर्थन करने का प्रयास कर रहा हूं, इस पर निर्भर करता हूं कि मैं एक वादा एपीआई पॉलीफिल समेत देखता हूं। रेल के साथ इसका कोई लेना-देना नहीं है।

पॉलीफिल here या Google ES6 वादा पॉलीफिल है। Sweetalert2 जेएस फ़ाइल से पहले इसे शामिल करें और आपको ठीक होना चाहिए।

अगर समझ में नहीं आता कि मैं वादा एपीआई के साथ क्या बात कर रहा हूं, तो अच्छा लेख here इसके बारे में, या Google जेएस वादा।

अब यह सब बहुत कठिन है, और/या भ्रमित है, क्यों न केवल मूल मिठाई (link here) का उपयोग करें क्योंकि यह वादा एपीआई का उपयोग नहीं करता है। बिल्कुल यकीन नहीं है कि उन्होंने क्यों फोर्क किया है, क्योंकि पाठ्यक्रम के वादे का उपयोग करने के अलावा, और कुछ नए मोडल आइकन (जानकारी और प्रश्न)

+0

हाँ मुझे लगता है कि आप सही हैं। मैंने कोड देखा। यह लाइन 321 पर देशी वादा का उपयोग कर रहा है। –

+0

मैं क्रोम – marimaf

+1

में अपना कोड आजमा रहा हूं मूल मीठाल कोड का उपयोग करके समस्या हल हो गई। धन्यवाद – marimaf

संबंधित मुद्दे