2013-11-27 6 views
5

Ich baue eine einseitige Website, mit AngularJS, UI-Router und Jquery, und ich brauche es, um zB 8 Browser zu unterstützen.
Ich folgte den Anweisungen aus der AngularJS-Dokumentation (link), und ich las auch this und befolgte die Anweisungen.
Auf den Punkt gebracht: Ich habe diesen Code in der Kopfzeile:AngularJS IE 8 Unterstützung

<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp"> 

und auch:

<!--[if lt IE 9]> 
    <script type="text/javascript" src="/app/js/3rdparty/html5shiv.js"></script> 
    <script type="text/javascript" src="/app/js/3rdparty/json3.min.js"></script> 
<![endif]--> 

Alle meine Richtlinien als Attribut-Richtlinien verwendet werden, sind beschränkt (keine benutzerdefinierten Tags).
Trotzdem wird keine Ansicht gerendert und keine Direktive funktioniert (auf ie8).

Ich begann erst vor kurzem mit UI-Router, und das Problem bestand schon vorher.
Ich kann das Problem wirklich nicht finden, und ich habe viel gesucht.
Es gibt viele Duplikate dafür, ich weiß, aber keine ihrer Lösungen hat mir geholfen (und die meisten von ihnen beziehen sich ziemlich auf die Dokumentation von angularjs).
Ich habe keinen anderen Code geschrieben, da es eine Menge davon gibt, und ich kann wirklich nicht herausfinden, welcher Teil des Codes (außer der index.html) kann jedes Problem verursachen.
Ich poste anderen Code, wenn Sie denken, dass es helfen könnte.
Ich bin wirklich verloren und wäre wirklich dankbar, wenn jemand mich zu einer Lösung führen könnte.
Vielen Dank

+0

Können Sie mehr Markup zur Verfügung stellen? Die anderen enthaltenen Skripte sind auch wichtig! Zum Beispiel haben die letzten jQuery-Versionen [Unterstützung für IE 8] (http: //blog.jquery.com/2013/04/18/jquery-2-0-released /). –

Antwort

4

Scheint, ich machte ein bisschen ein Idiot aus mir selbst.
Das Problem war, dass ich einige reservierte Wörter verwendete, und IE8 scheint es wirklich überhaupt nicht zu mögen.
Zum Beispiel hatte ich einen Parameter mit dem Namen "Klasse" auf einem Objekt, so mit obj.class gerade gemacht IE8 ausgeflippt.
Das gleiche mit einer Funktion „Löschen“ genannt (wieder innerhalb eines Objekts, so war ich mit functionHoldingObject.delete.

ich über reservierte Wörter wusste, ich glaube einfach nicht, sie als ein Parameter eines Objekts unter Verwendung schädlich ist. um dies zu beheben, ich habe gerade die Namen für einige, und verwendet obj["reservedWord"] für andere, beide Lösungen auf allen Browsern.

Ein weiterer Fehler ich fand, war, dass ich die Array.prototype.indexOf Funktion wurde mit, ohne zu wissen, dass IE8 doesn Ich habe gerade eine Implementierung hinzugefügt (was sehr einfach ist)
Sie könnten Hilfe auf dererhalten 210 Website.

0

Ich habe das gleiche Problem vor kurzem wegen des Kompatibilitätsmodus getroffen.

Versuchen Sie es zu zwingen, mit:

<!--[if IE 8]><!--> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!--<![endif]--> 

Auch in Ihrem Browser IE8 überprüfen, ob Ihr Kompatibilitätsmodus nicht IE7 ist.

+0

Bitte verwenden Sie "für HTML in Ihrer Antwort anstelle von" und " – Daan

9

Falls Sie console.log() in Ihrem Controller oder Service oder Ihrer Fabrik verwendet haben, lädt IE-8 den Winkel überhaupt nicht. Es ist komisch.

+1

Es war nicht mein Fall. Ich empfehle Angulars [$ log] (http://docs.angularjs.org/api/ng/service/$log) Aber danke für den Kopf! –

+0

@Senthil -Das ist in der Tat wahr. Danke – pingu

+0

Das hat mich nach Stunden des Kopfschüttelns gerettet, danke. – DrewT