【问题标题】:AngularJS: "Error: Unexpected call to method or property access.undefined" only in IE 8AngularJS:“错误:意外调用方法或属性 access.undefined”仅在 IE 8 中
【发布时间】:2013-03-13 12:20:12
【问题描述】:

您是否曾经在 IE8 中遇到过错误“错误:意外调用方法或属性 access.undefined”?是什么造成的?你是怎么解决的?

-- 注意:假设相同的代码在 Chrome、Firefox、Safari 中运行良好

编辑:上下文

我正在使用 AngularJS + Google App Engine Python 构建一个 facebook 页面标签插件。

我使用 十几个自定义指令,要么由我编写,要么由 angular-ui 团队和 4-5 个控制器编写。

在 Chrome、Safari 和 Firefox 中一切正常,但在 IE8 中却不行。

【问题讨论】:

  • 看起来您已经回答了自己的问题,但在未来,如果您详细说明您的页面包含的内容,它确实会帮助人们给出答案。错误发生在您的代码中的哪个位置?你用的是什么 JS 库?你有可以给我们看的例子吗?等等
  • @Spudley 刚刚添加了额外的上下文以更好地构建问题

标签: internet-explorer internet-explorer-8 angularjs angularjs-directive


【解决方案1】:

如果您使用的是 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/

【讨论】:

    【解决方案2】:

    问题在于 IE8 无法识别“自定义”元素。

    在元素形式的指令声明中使用“replace:true”(限制:'E')并使用 IE shiv(我使用了 angular-ui 的 IE shiv 并在那里声明了我的自定义标签)。

    查看以下链接的更多信息: https://github.com/angular/angular.js/issues/1933 http://angular-ui.github.com/#ieshiv

    【讨论】:

    • 如果这个答案解决了问题,您应该使用勾选图标将其标记为“已接受”(即使是您自己回答的问题)。
    猜你喜欢
    • 2013-04-25
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多