AngularJS: "Ошибка: неожиданный вызов метода или свойства access.undefined" только в IE 8
У вас была ошибка "Ошибка: неожиданный вызов метода или свойства access.undefined" только IE8? Что вызвало это? Как вы его решили?
- Примечание. Предполагается, что тот же код отлично работает в Chrome, Firefox, Safari
Изменить: Контекст
Я создаю плагин вкладки страницы facebook с помощью AngularJS + Google App Engine Python.
Я использую дюжину настраиваемых директив, написанных мной или командой angular -ui и 4-5 контроллерами.
Все работает отлично в Chrome, Safari и Firefox, но не в IE8.
Ответы
Ответ 1
Проблема в том, что IE8 не распознает "пользовательские" элементы.
Используйте "replace: true" в объявлении директив, которые находятся в форме элемента (ограничивайте: "E" ) и используйте IE shiv (я использовал angular -ui IE shiv и объявил там свои собственные теги).
Подробнее о ссылках ниже:
https://github.com/angular/angular.js/issues/1933
http://angular-ui.github.com/#ieshiv
Ответ 2
Если вы используете jQuery, проблему можно решить, изменив файл jQuery.
Добавьте свои собственные элементы в список "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",
Более подробную информацию можно найти на http://blog-it.hypoport.de/2013/08/24/how-to-make-your-angularjs-app-work-in-ie-8/