2013-01-22 15 views
9

मैं समस्याओं & 8 और यहां तक ​​कि 9.AngularJS और इंटरनेट एक्सप्लोरर

मेरे एप्लिकेशन लोड हो रहा है इंटरनेट पर हो रही एक्सप्लोरर 7 मैं निम्नलिखित त्रुटि संदेश मिल रहा (कंसोल)

Uncaught TypeError: Cannot read property 'nodeName' of undefined 

लोड {पर {}} चर लोड हो रहे हैं और गायब हो रहे हैं। कुछ भी नहीं दिया गया है।
मैं HTML टैग को यह कहा:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:ng="http://angularjs.org" id="ng-app" class="ng-app: myapp;"> 

मैं AngularUI ढांचे से ieshiv.js गयी।
मैं

जोड़ा
<!--[if lt IE 8]> 
    <script src="files/js/json3.min.js"></script> 
<![endif]--> 

(प्रश्न: है यह पर्याप्त है, सिर्फ मेरे सिर अनुभाग को जोड़ने या मैं अपने कोड भी संशोधित करना होगा?)

मैं भी मेरे सिर अनुभाग को यह कहा:

<!--[if lte IE 8]> 
     <script> 
     document.createElement('ng-include'); 
     document.createElement('ng-pluralize'); 
     document.createElement('ng-view'); 
     document.createElement('slide'); 
     document.createElement('carousel'); 

     // Optionally these for CSS 
     document.createElement('ng:include'); 
     document.createElement('ng:pluralize'); 
     document.createElement('ng:view'); 
     </script> 
    <![endif]--> 

और यह बिल्कुल भी काम नहीं करता है। कोई चर लोड नहीं होता है, सूची नहीं दी जाती है और वेबसाइट काम नहीं कर रही है।
क्रोम, एफएफ और ओपेरा ठीक काम कर रहे हैं।

क्या आपके पास कोई संकेत है कि कहां से शुरू किया जाए?

संपादित करें 1: paste.bin
http://pastebin.com/z67qE9ME

संपादित 2 पर मेरे controller.js को
लिंक:

यह शायद js लोडिंग के आदेश है?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script> 
<!--[if lt IE 8]> 
    <script src="files/js/json3.min.js"></script> 
<![endif]--> 
<script src="files/js/angular.min.js"></script> 
<script src="files/js/ui-bootstrap-tpls-0.1.0-SNAPSHOT.js"></script> 
<script src="files/js/angular-ui.js"></script> 
<script src="files/js/angular-resource.min.js"></script> 
<script src="files/js/controller.js"></script> 
<script src="files/js/select2.js"></script> 
<script src="files/js/main.js"></script> 

संपादित करें 3:
ठीक है, मैं fauxconsole.js मेरी स्क्रिप्ट को जोड़ा गया और कोड साफ किया और यह काम किया। खैर, कम से कम यह ठीक से लोड हो रहा है (बिना किसी सीएसएस सुधार के)। लेकिन यह मेरे कुछ टैग पर इनलाइन शैली लोड नहीं करता है। क्या आपको पता है क्यों?

<a ng-click="details.show=toggle(marker)" ng-class="{active_marker: active_marker.show == marker.id}" href="#/dealer/{{marker.id}}" class="marker" style="left:{{marker.coordleft}}px;top:{{marker.coordtop}}px"> 
</a></div> 

संपादित करें 4:
संपादित 3 भी इस मदद यहाँ के साथ हल किया जाता है:
https://groups.google.com/d/msg/angular/0zHsVuUryKI/ckTvY93NcRsJ

लेकिन अब मैं एक दूसरी समस्या मिला है। आईई 8 में और रूट टेम्पलेट के नीचे प्रतिपादन नहीं कर रहे हैं। मैं बस {{}} चर देखता हूं और अधिक नहीं।

संपादित करें 5:
यह अजीब बात है। मैं पहला टेम्पलेट सही लोड करने में कामयाब रहा। सभी ब्रैकेट {{}} ठीक से लोड हो रहे हैं।
मैं अपने कंट्रोल करने के लिए .resolve कहा:

// DealerDetailsCtrl 
function DealerDetailsCtrl($scope, $rootScope, $routeParams, dealerService, datasets) { 
    $scope.loading = true; 
    // Abfrage 
    $rootScope.dealerdetails = datasets; 
    // inline styles fuer positionierung laden 
    $rootScope.itemStyle2 = function (item) { 
     return { left: item.divleft * 1 + 390 + 'px', top: item.divtop * 1 + 160 + 'px'}; 
    }; 
    //Feedback zur Message zurruecksetzen 
    $scope.issend = $rootScope.issend; 
    $rootScope.issend = false; 
    $scope.loading = false; 
    //Close Button 
    $rootScope.close = function() { 
     $rootScope.marker = null; 
     $rootScope.details = {show: false}; 
     $rootScope.alldealer = {show: false}; 
     $rootScope.active_marker = null; 
    }; 
    $rootScope.$on("$routeChangeStart", function (event, next, current) { 
     $scope.loading = true; 
    }); 

} 
DealerDetailsCtrl.resolve = { 
    datasets : function($q, $http, $route, $rootScope) { 
     var deferred = $q.defer(); 

     $http.get('files/framework/dealer/'+ $route.current.params.id +'/' + $rootScope.token).success(function(data) { 
      deferred.resolve(data); 
     }); 

     return deferred.promise; 
    } 
}; 

अजीब बात है।(सही ढंग से प्रस्तुत) टेम्पलेट से, मैं दूसरे टेम्पलेट और रूट (डीलर/आईडी से/डीलरमेसेज/आईडी) से लिंक करता हूं, लेकिन यह मार्ग (और सबकुछ हल करने सहित समान है) ठीक से लोड नहीं हो रहा है पहले की तुलना में त्रुटि, टेम्पलेट प्रस्तुत नहीं किया गया है।

मार्गों:

app.config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
    when('/dealer/:id', { 
     templateUrl: 'files/tpl/dealer-details.html?333', 
     controller: 'DealerDetailsCtrl', 
     activetab: 'details', 
     resolve: DealerDetailsCtrl.resolve 
    }). 
    when('/dealermessage/:id', { 
     templateUrl: 'files/tpl/dealer-message.html?222', 
     controller: 'DealerMessageCtrl', 
     activetab: 'message', 
     resolve: DealerMessageCtrl.resolve 
    }). 
    when('/dealersendmessage/:id', { 
     templateUrl: 'files/tpl/dealer-details.html?444', 
     controller: 'DealerDetailsCtrl', 
     activetab: 'details', 
     resolve: DealerDetailsCtrl.resolve 
    }). 
    otherwise({ 
     redirectTo: '/dealer' 
    }); 
}]); 

किसी को भी एक सुराग, क्या या जहां गलती हो सकता है करता है?

+0

: https://github.com/angular-ui/angular-ui/tree/master/common/ieshiv

के रूप में वहाँ कहा, आप केवल इस की जरूरत है एक jsfiddle में कोड शुरू करने के लिए एक शानदार तरीका होगा। – Patrick

+0

यह काफी समस्या हो सकती है क्योंकि यह कई फाइलों में विभाजित एक ग्राहक प्रोजेक्ट है लेकिन मैं अपने नियंत्रक.जेएस और मुख्य HTML टेम्पलेट पोस्ट करूंगा। बस एक पल। – Marek123

+0

''? – maxisam

उत्तर

0

जब भी मुझे आईई में इन प्रकार की त्रुटियां मिलती हैं (विशेष रूप से 8) यह इन 2 मुद्दों में से एक थी।

1) मैं <auto-complete> की तरह एक कस्टम टैग का उपयोग किया गया था और document.createElement

2) का उपयोग नहीं किया गया था मैं डुप्लिकेट id विशेषताओं के साथ तत्व था। आईई इसे पसंद नहीं करता है।

उन्मूलन का तरीका आमतौर पर टेम्पलेट में समस्या को अलग करने के लिए मेरे लिए काम करता है।

2

परियोजना कोणीय-यूआई एक "subproject" नाम "IEShiv" जो आप आसानी से कोणीय चलाने आईई के तहत देना चाहिए शामिल हैं: कुछ पोस्ट करना

<!--[if lte IE 8]> <script src="build/angular-ui-ieshiv.js"></script><![endif]-->