问题的发现
<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
666
好专业的内容看不懂...默默点个赞支持下,加油
没什么难的,有时就是一个问题卡住,然后花费好长时间。。。
我也看不太懂,一个我没有用过的库。。。。
@rileyge 兄弟厉害,给个赞你~
你的前端好厉害呀
夸的的都脸红了。。。