我们正在构建一个需要在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是非常糟糕的吗?
希望你能提前帮助,谢谢你们!
答案 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