Befestigung AngularJS Probleme im IE8

Habe ich entwickelten eine app mit AngularJS 1.2.13 (und JQuery 1.11.0) auf Firefox. Es funktioniert auch in Chrome. Jetzt für das harte Teil. Ich habe befolgt einige Tipps für die erste dieser arbeiten auf IE8.

Wenn ich laden Sie die Seite, die ich derzeit auch die sehr nützliche "[object Error]" (und sonst nichts) in der JS-Konsole in den dev-tools-Fenster. Die Seite zeigt die raw-html heruntergeladen, so dass Winkel grundsätzlich war in der Lage, nichts zu tun.

Hier ist die Spitze von meinem index.html:

<!DOCTYPE html>
<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="DiagApp">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--[if IE 8]><!--> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!--<![endif]-->

Obwohl ich NICHT im quirks-Modus (in den dev-tools-Fenster "Dokument-Modus", sagt "IE7-standards", nicht "Quirks-Modus"), ich bekomme immer noch folgende:

  [$sce:iequirks] Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.

http://errors.angularjs.org/1.2.13/$sce/iequirks angular.js, line-3689-Zeichen 19

So, ich habe Folgendes in meine config Funktion in das Modul, welches dies behebt:

$sceProvider.enabled(false);

Wenn ich den HTML-Code anzeigen im "Skripte" - tab, alles scheint eingefärbte richtig, der zeigt mir es korrekt validiert (hatte ich vorhin entdeckt einen Tippfehler in meinem HTML-Code, der dies verursacht nicht Kolorieren richtig (Tippfehler, die Firefox und Chrome ignoriert)).

Ich Haltepunkte setzen, um zu zeigen, dass es den laden meiner Module, und auch in den Haupt-controller. Das zeigt mir, dass es das laden der Module, die aber nie trifft mein Haupt-controller. Ich habe versucht, einige Haltepunkte in der angularjs-code, aber das führte zu allen möglichen kurvigen Passagen mit keinen offensichtlichen Wert.

Hörte ich erwähnen, der einige polyfills sollte ich verwenden für <=IE8, aber ich habe nur bemerkt, erwähnt von polyfills für <=IE7.

Alles, was ich versuchen kann?

  • Ich bin mir ziemlich sicher, dass Sie nicht bekommen, Gewinkelt 1.2* arbeiten auf alten IE. Ich habe die Unterstützung von alten IE mit unseren Winkel-Website, und die besten, die ich verwenden könnte, war 1.1.5
  • Gehen wir zurück zu 1.1.5 ist ein weiterer Kampf. Ich kann nicht einmal herausfinden, wie man meine app funktioniert in Firefox mit 1.1.5. Nun keiner meiner ngRepeats arbeiten. Keine Fehler, es funktioniert einfach nicht alles tun. Vergleicht man die docs für die ngRepeat in 1.1.4 vs. 1.2.14, ich sehe keine offensichtliche syntax-Unterschiede.
  • Ich glaube nicht, dass das problem mit den ng-repeat-speziell dann. Verwenden Sie keine anderen Bibliotheken/plugins, die Sie eventuell benötigen herabgestuft werden, um die Arbeit mit 1.1.5? Sehen Sie alle Fehler in Ihrem browser für die Konsole? Ich benutze den gleichen <html>/<meta> format wie du, also das ist nicht das problem. Hast du Folgen, alles weitere unter docs.angularjs.org/guide/ie ?
  • Nun, einige andere frameworks sind jquery und angularjs ui-bootstrap. Letzteres funktioniert den ganzen Weg zurück zu AngularJS 1.0.8, so dass wahrscheinlich nicht ein Problem. Ich habe versucht, Downgrade der jquery-sowohl 1.9.1 und 1.8.1 einfach als eine stichprobenartige Kontrolle, und keiner von denen machte einen Unterschied. Wie ich bereits sagte, gibt es keine Fehler. Es funktioniert einfach nicht alles tun. Ich folgte alle relevanten Ratschläge, die IE-Kompatibilität. Ich bin nur auf IE8, also ignorierte ich die IE7-spezifische Beratung.
Schreibe einen Kommentar