2013-01-22 88 views
9

我有問題,讓互聯網上我的應用程序加載瀏覽器7 & 8,甚至9AngularJS和Internet Explorer

我收到以下錯誤消息(控制檯)

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;"> 

我加ieshiv.js從AngularUI框架。
我加

<!--[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]--> 

它根本不起作用。沒有變量加載,列表不呈現,網站無法正常工作。 Chrome,FF和Opera工作正常。

你有什麼提示從哪裏開始?

編輯1:
鏈接到我的controller.js上paste.bin
http://pastebin.com/z67qE9ME

編輯2:
是它也許是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給我的腳本和清理的代碼和它的工作。那麼,至少它是正確加載(沒有任何css更正)。但它不會在我的一些標籤上加載內聯樣式。你知道爲什麼嗎?

<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

但我現在有一個其他問題。在IE 8和以下的路由模板不會呈現。我只看到{{}}變量,而不是更多。編號5:
這很奇怪。我設法正確加載第一個模板。所有括號{{}}都正確加載。
我加.resolve到我的Ctrl鍵:

// 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; 
    } 
}; 

奇怪的是。從(正確呈現的)模板中,我鏈接到第二個模板和路由(從經銷商/:id到/ dealermessage /:id),但這條路線(包括決議在內的所有內容都是相同的)未正確加載,錯誤比以前,模板不渲染。

路線:

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

發佈一些jsfiddle中的代碼將是開始的好方法。 – Patrick

+0

這可能是一個相當大的問題,因爲它是一個客戶項目分散在很多文件中,但我會張貼我的controller.js和主html模板。一會兒。 – Marek123

+0

'<!doctype html>'? – maxisam

回答

0

每當我在IE中遇到這些類型的錯誤(特別是8)這是兩個問題之一。

1)I,使用像<auto-complete>自定義標記,並沒有使用document.createElement

2)我與重複id屬性的元素。 IE不喜歡這個。

消除方法通常適用於隔離模板中的問題。