【问题标题】:angularjs ng-href doesn't work in ie8angularjs ng-href 在 ie8 中不起作用
【发布时间】:2014-09-29 00:24:17
【问题描述】:

我们正在构建一个需要在 IE8 中运行的站点(至少可以正常运行),并且我们得到了一些不起作用的链接,它们的共同点是它们使用 ng-href 而不是 href 可以正常工作.

所以这不起作用:

<a ng-href="/User/Index/{{item.MetaData.Author.Id}}">{{item.MetaData.Author.FullName}}</a>

但这确实有效:

<a href="/User/Index/{{item.MetaData.Author.Id}}">{{item.MetaData.Author.FullName}}</a>

angular 完成绑定后,链接如下所示:

<a class="ng-binding" href="/User/Index/15143" ng-href="/User/Index/15143" jQuery191021026375357298033="135">Niclas Schumacher <!-- IE fix --></a>

我认为为 IE8 添加 IE 修复程序是有角度的。

其他的东西可以很好地工作,但是链接可以正常工作是非常重要的!

有谁遇到过这个错误,或者知道如何解决它? 或者在使用 angularjs 时使用 ng-href 而不是 href 是否非常重要?

希望您能提供帮助,在此先感谢!

【问题讨论】:

  • 您能否详细说明“不起作用”的含义?也许显示最终链接应该是什么以及实际输出的是什么?
  • 您使用的是哪个版本的 Angular?
  • 当然。好吧,我可以单击链接,但如果它是 ng-href,则不会发生任何事情,但是当我将链接悬停时,我得到了正确的路径等。最终链接已添加到问题中。实际输出只是“Niclas Schumacher”作为链接。我可以点击它,但我没有被重定向。我们正在使用 angularjs 版本 1.2.13。
  • 对不起,我无法在 IE8 上进行测试,但这里有一个想法。尝试使用data-ng-href 而不是ng-href
  • 试过了..没用:/.

标签: html angularjs internet-explorer-8


【解决方案1】:

遇到了类似的问题(从问题的文字中我不确定是否相同)。无论哪种方式,这都是我的问题以及让我工作的原因:

问题:

显然,在 IE8 中使用 href 或 ng-href [1] 时(我目前使用的是 1.2.18)存在无法评估的问题。

例子:

如果 Angular 找到一个没有 name 和 href 的链接,它会自动添加它,因此,代码如下:

<a ng-href="redirectTo()">link</a>

最终会变成

<a href="" ng-href="redirectTo()">link</a>

并且由于“”(应用程序的第一页)而重定向到baseUrl是在单击时执行的,并且ng-href不会覆盖href中的值。

我使用的技巧是将链接转换为锚点(不必更改依赖代码)

<a name="someRandomName" ng-click="redirectTo()">link</a>

并更改redirectTo() 的return 语句以进行重定向(使用window.location.href 或$location.path,具体取决于所需的URL),而不是简单地返回URL。

[1] ngHref:https://docs.angularjs.org/api/ng/directive/ngHref

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2016-02-06
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多