angularjs ng-href在ie8中不起作用

时间:2014-08-06 06:58:11

标签: html angularjs internet-explorer-8

我们正在构建一个需要在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>

角度完成后绑定链接如下所示:

<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是非常糟糕的吗?

希望你能提前帮助,谢谢你们!

1 个答案:

答案 0 :(得分:0)

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

问题:

显然在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