使用Angular Js后超链接<a>不工作问题
问题的发现
在用SteemConnect V2进行开发的时候,发现了一个问题:使用Angular JS后,超链接标签 <a href='location'>click</a>
不起作用。表现为:单击后浏览器地址改变,但不会进行跳转。
开始并没有关注此问题,认为只是速度问题,但后来发现几乎所有页面都有这个问题。
原因
使用Angular Js配置了$locationProvider to html5Mode(下文代码第3行),如我在sc2-cookie中使用形式:
angular.module('app', ['ipCookie'])
.config(['$locationProvider', function($locationProvider){
$locationProvider.html5Mode(true);
}]);
此时就会出现上述问题。
解决方案一(欠完美方案)
在标签中添加 target="_self" 来保证跳转。
为什么说是欠完美方案,如果只有一个页面中用了Angular Js还好说,随手就加上了,但如果全站使用,那么工作量就很大了。而且有时a标签是自动生成的,还要到程序里面找,非常不方便。
解决方案二(完美方案)
angular.module('app', ['ipCookie'])
.config(['$locationProvider', function ($locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: true,
rewriteLinks: false
});
}]);
问题解决。
参考:javascript - AngularJS tag links not working - Stack Overflow
666
好专业的内容看不懂...默默点个赞支持下,加油
没什么难的,有时就是一个问题卡住,然后花费好长时间。。。
我也看不太懂,一个我没有用过的库。。。。
@rileyge 兄弟厉害,给个赞你~
你的前端好厉害呀
夸的的都脸红了。。。