使用Angular Js后超链接<a>不工作问题

in #cn7 years ago

问题的发现

<p dir="auto">在用SteemConnect V2进行开发的时候,发现了一个问题:使用Angular JS后,超链接标签 <code><a href='location'>click</a>不起作用。表现为:单击后浏览器地址改变,但不会进行跳转。 <p dir="auto">开始并没有关注此问题,认为只是速度问题,但后来发现几乎所有页面都有这个问题。 <h2>原因 <p dir="auto">使用Angular Js配置了$locationProvider to html5Mode(下文代码第3行),如我在<a href="https://github.com/RileyGe/sc2-cookie" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">sc2-cookie中使用形式: <pre><code>angular.module('app', ['ipCookie']) .config(['$locationProvider', function($locationProvider){ $locationProvider.html5Mode(true); }]); <p dir="auto">此时就会出现上述问题。 <h2>解决方案一(欠完美方案) <p dir="auto">在标签中添加 target="_self" 来保证跳转。 <p dir="auto">为什么说是欠完美方案,如果只有一个页面中用了Angular Js还好说,随手就加上了,但如果全站使用,那么工作量就很大了。而且有时a标签是自动生成的,还要到程序里面找,非常不方便。 <h2>解决方案二(完美方案) <pre><code>angular.module('app', ['ipCookie']) .config(['$locationProvider', function ($locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: true, rewriteLinks: false }); }]); <p dir="auto">问题解决。 <p dir="auto">参考:<a href="https://stackoverflow.com/questions/19773682/angularjs-a-tag-links-not-working/19773963#19773963" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">javascript - AngularJS <a href="#" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"> tag links not working - Stack Overflow
Sort:  

好专业的内容看不懂...默默点个赞支持下,加油

没什么难的,有时就是一个问题卡住,然后花费好长时间。。。

我也看不太懂,一个我没有用过的库。。。。

@rileyge 兄弟厉害,给个赞你~

你的前端好厉害呀

夸的的都脸红了。。。