18

Hatten Sie jemals den Fehler "Fehler: Unerwarteter Aufruf von Methode oder Eigenschaft access.undefined" nur IE8? Was hat es verursacht? Wie hast du es gelöst?AngularJS: "Fehler: Unerwarteter Aufruf von Methode oder Eigenschaft access.undefined" nur in IE 8

- Hinweis: Es nimmt die gleiche Code funktioniert gut in Chrome, Firefox, Safari

Edit: Context

Ich baue eine Facebook-Seite Registerkarte Plugin mit AngularJS + Google App Engine Python .

Ich benutze eine dutzende benutzerdefinierte Direktiven entweder von mir geschrieben oder von der angular-ui-Team und 4-5 Controller.

Alles funktioniert gut in Chrome, Safari und Firefox, aber nicht in IE8.

+1

Möglicherweise ähnliche finden: http://stackoverflow.com/questions/15532864/angular-ui-ie8 -accordion – Spudley

+2

Es sieht so aus, als ob Sie bereits Ihre eigene Frage beantwortet haben, aber in Zukunft würde es den Leuten wirklich helfen, Antworten zu geben, wenn Sie ein bisschen mehr über Ihre Seite angeben. Wo in Ihrem Code tritt der Fehler auf? Welche JS-Bibliotheken verwenden Sie? Hast du ein Beispiel, das du uns zeigen kannst? usw. – Spudley

+0

@Spudley Nur zusätzliche Kontext hinzugefügt, um die Frage besser zu umrahmen –

Antwort

36

Das Problem ist, dass IE8 "benutzerdefinierte" Elemente nicht erkennt.

Verwenden Sie "replace: true" in Ihrer Direktiven-Deklaration, die in Elementform sind (Einschränkung: 'E') und IE shiv verwenden (ich benutzte eck shiv von angular-ui und deklarierte meine benutzerdefinierten Tags dort).

Mehr auf die Links unten: https://github.com/angular/angular.js/issues/1933 http://angular-ui.github.com/#ieshiv

+3

Wenn diese Antwort das Problem löste, sollten Sie es als "akzeptiert" markieren mit dem Häkchen-Symbol (auch wenn Sie Ihre eigene Frage beantwortet haben). – Spudley

1

Wenn Sie jQuery das Problem verwenden, können durch Modifizieren der jQuery-Datei gelöst werden. Fügen Sie Ihre benutzerdefinierten Elemente in die Liste der "nodeNames":

var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + 
    "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video|accordion|accordion-group|accordion-heading", 

Weitere Informationen ca auf http://blog-it.hypoport.de/2013/08/24/how-to-make-your-angularjs-app-work-in-ie-8/