AngularJs阻止链接被点击两次

时间:2016-05-11 13:23:22

标签: javascript angularjs

我正在使用AngularJS来构建SPA,但仅限于系统中的某些功能。我很难找到为什么Angular会阻止页面在刷新之后刷新或者如何禁用/解决它。

所以我有简单的菜单:

<ul>
    <li><a href="/admin">Homepage</a></li>
    <li><a href="/admin/profile">Profile</a></li>
</ul>

当我已经在http://example.com/admin页面上并点击第一个链接(/admin)时,没有任何反应。

我可以检测到某个a元素是否有href,然后使用window.location但不幸的是我在系统的其他部分使用了AJAX,因此不适合

请告知。

2 个答案:

答案 0 :(得分:3)

您正在使用单页应用程序。路由器负责在不同的应用程序路由之间导航,但浏览器从不提取全新的页面。

当您点击已经存在的网页的链接时,无法导航到该位置。

编辑:您可以编写一个指令来检测锚标记的点击次数,如果路径相同,则可以触发页面刷新。这将为您提供您正在寻找的行为。但是,我努力想到这一点。

编辑2 :这就是停止导航的原因:https://github.com/angular/angular.js/blob/v1.5.x/src/ng/location.js#L889

据我所知,你无法做任何事情来禁用这种行为,或者如果有的话,那将是一个更丑陋且更脆弱的解决方案,它会创建你自己的指令来触发页面刷新。

答案 1 :(得分:0)

您需要使用ng-hrefhttp://plnkr.co/edit/stdkjN?p=preview