【发布时间】:2014-05-24 19:38:20
【问题描述】:
我知道如何在 AngularJS 中实现返回按钮:How to implement history.back() in angular.js
而且我只想在 BACK 将我引导到同一个应用程序时显示它:
<a ng-click="back()" ng-show="isBackAvailable()">BACK</a>
如果 BACK 会指向其他页面,我希望隐藏它。
我当前的实现如下所示:
app.run(function($rootScope, $window) {
var acceptableReferrers = ["http://127.0.0.1:9000/"];
$rootScope.back = function() {
$window.history.back();
}
$rootScope.isBackAvailable = function() {
var result = _.contains(acceptableReferrers, document.referrer);
console.log(result)
return result;
}
});
这不起作用。
当我将http://127.0.0.1:9000/ 粘贴到浏览器栏中时,document.referrer 是""(空字符串)。但是,如果我按照以下方式执行此操作:
<a href="http://127.0.0.1:9000/#/search">now referrer will be correct</a>
请指教。
【问题讨论】:
-
您可以尝试使用
$location.absUrl(),然后检查网址是否包含任何可接受的引荐来源网址 -
@callmekatootie -
$location.absUrl()尝试使用它但对我不起作用:( -
你的意思是它不返回任何东西?
-
抱歉没有更准确。它总是返回我所在的当前 URL。它对我不起作用,因为它不能解决我的问题。
标签: javascript angularjs browser-history referrer