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

in #cn6 years ago

问题的发现

在用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

Sort:  

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

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

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

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

你的前端好厉害呀

夸的的都脸红了。。。