AngularJS和IE8 - 不支持的属性或方法

3
我正在支持一个现有的AngularJS应用程序,使其能在Internet Explorer 8中运行。 对于路由,我使用了AngularUI Router框架。它提供了ui-sref指令以导航到其他状态。
在IE8开发人员工具的控制台中,每个带有ui-sref=""属性的元素都会出现以下错误:

TypeError:对象不支持此属性或方法<a class=ng-binding href="" ui-sref="state-name">

屏幕截图

enter image description here

原始HTML

<a ui-sref="state-name">Go to My State</a>

可能是因为这个错误,导致导航无法使用。当我点击链接时,没有任何反应。

有没有人之前遇到过类似的问题?或者可能指导我走向正确的方向?

3个回答

11

问题在于IE8不本地支持indexOf()方法。

解决方案是包含ES5 shim,该库提供了对indexOf()的支持。


1
这太棒了,我希望 AngularJS 文档中已经内置了这个功能。 - windmaomao

0

将其更改为data-ui-sref而不是ui-sref


同样的问题。然后我得到了 TypeError: Object doesn't support this property or method <a class=ng-binding href="" data-ui-sref="state-name"> - ndequeker
你使用的Angular版本是什么?看起来有一些相关的错误已经发布在这里:https://github.com/angular-ui/ui-router/issues/576 和 https://github.com/angular-ui/ui-router/issues/350。 - Jonathan Rowny
我正在使用AngularJS v1.2.2。对于UIRouter,我正在使用一个自定义版本,基于最新的提交之一:https://github.com/angular-ui/ui-router/tree/861238049b1a098c1d98983d53f7db431a0462fa - ndequeker
谢谢你们两个关注这个问题。请看我的答案,已经解决了问题。谢谢。 - ndequeker

0

请检查您的方法签名和预期参数是否同步。这在我的情况下已经修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接