2015-01-05 13 views
9

की संपत्ति 'childNodes' नहीं पढ़ी जा सकती है जब दृश्य लोड होने पर मैं एक मॉडल प्रदर्शित करने की कोशिश कर रहा हूं।टाइप त्रुटि: अपरिभाषित

कोड:

//View 
<div id="showCom" ng-controller="showmodalCtrl" ng-init="init()"> 

<div class="modal fade" id="companyModal" role="dialog"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title">Please Select Company</h4> 
    </div> 
    <div class="modal-body"> 
    <form> 
     <div class="form-group"> 
     <label class="control-label">Recipient:</label> 
     <input type="text" class="form-control"> 
     </div> 
    </form> 
    </div> 
    <div class="modal-footer"> 
     <button type="button" class="btn btn-primary">Submit</button> 
    </div> 
    </div> 
</div> 
</div> 

//Controller 
.controller('showmodalCtrl', ['$scope', function($scope){ 

$scope.init = function(){ 
    $('#companyModal').modal("show"); 
} 
}]) 

सब कुछ ठीक काम करता है और मॉडल प्रदर्शित किया जाता है, लेकिन मैं कंसोल पर इस त्रुटि मिलती है:

Type error : Cannot read property 'childNodes' of undefined 

मैं पता नहीं क्यों यह है घटित हो रहा है। अगर मैं मोडल से "फॉर्म" को हटा देता हूं, तो मुझे कोई त्रुटि नहीं मिलती है। तो मुझे लगता है कि समस्या फॉर्म के साथ है लेकिन मैं इसे हल करने में सक्षम नहीं हूं।

अग्रिम धन्यवाद।

+0

क्या आपने 'jQuery' शामिल किया था? आप 'jQuery' के साथ तत्व चुनने के लिए '$ ('# companyModal') 'चयनकर्ता का उपयोग कर रहे हैं। –

+0

@MohitPandey .. हाँ मैं jquery – Zee

+0

शामिल था इस कोड के साथ त्रुटि का पता लगाने में काफी मुश्किल है। इसका एक http://jsfiddle.net/ बनाने का प्रयास करें। इसके अलावा, नियंत्रक '$' के अंदर कोणीय का संदर्भ नहीं है jQuery। 'JQuery ('# companyModal') का उपयोग करने का प्रयास करें। –

उत्तर

2

संपादित करने के लिए खेद है। क्या आपका एचटीएमएल अच्छी तरह से बनाया गया है? जांचें कि सभी टैग मेल खाते हैं।

अपने कोड स्निपेट में, ऐसा लगता है कि आप एक बंद div खो रहे हैं। जांचें - वह जो नियंत्रक div को बंद करता है।

39

मैं एक ही समस्या थी और मैं एक $ टाइमआउट() या एक सामान्य setTimeout() फ़ंक्शन के अंदर मोडल खुले समारोह लपेटकर द्वारा इसे हल करने में कामयाब रहे।

setTimeout(function(){ 
    jQuery('#messageModal').modal('show'); 
}, 0); 
+0

यह सेटटाइमआउट() समस्या जावास्क्रिप्ट में हमेशा होती है। मैंने इसे कई बार सामना किया है। वैसे भी, मैं फिर से खरोंच से शुरू हुआ और अब यह मेरे लिए काम कर रहा है, बिना टाइमआउट फ़ंक्शन के। – Zee

+1

मेरे जीवन को बचाया! इसे स्वीकार किए जाने के रूप में चिह्नित किया जाना चाहिए। – lbarman

11

मुझे JQuery प्लगइन का उपयोग करने का प्रयास करते समय एक ही त्रुटि संदेश था। दस्तावेज़ तैयार करने के बाद इसे चलाने के लिए मेरे लिए समस्या हल हो गई। प्लगइन ठीक चल रहा था लेकिन मौजूदा दायरे में आने वाले कोणीय कोड नहीं थे।

यह इस सूत्र में "समाप्ति सेट" -answer है कि मुझे इस समाधान की कोशिश करने का नेतृत्व किया था। मेरे लिए

समाधान:

angular.element(document).ready(function() { 
    //Angular breaks if this is done earlier than document ready. 
    setupSliderPlugin(); 
}); 
2

मैं एक ऐसी ही समस्या थी। यह एक अपवाद फेंक देगा जब मैंने कुछ एचटीएमएल को डोम में जोड़ने की कोशिश की और angularJs में $ compile का उपयोग करके संकलित किया।

enter image description here

html के अंदर एक और निर्देश पेज में कहीं और करने के लिए पृष्ठ से कुछ डोम तत्व जोड़ने की कोशिश की है कि था।

मैं बस उस तत्व की .clone कॉल करने के लिए इससे पहले कि मैं इसे नए स्थान पर ले जाया गया था। और अपवाद समाप्त हो गया था।

$popupContent = $(attrs.popupSelector).clone(); 
$container = $('<div class="popup-container"></div>'); 
$container.append($popupContent); 
$container.hide(); 
$('body').append($container); 
3

AngularJS संदर्भ में एक और समाधान मैं इस दृष्टिकोण का उपयोग कर रहा है:

  1. अपने जे एस नियंत्रक में $timeout मॉड्यूल शामिल इस तरह सभी initializers साथ
  2. भागो init() समारोह:

    $ टाइमआउट (init, 0);

अच्छा काम करता है।

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