首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在angular.js中实现history.back

如何在angular.js中实现history.back
EN

Stack Overflow用户
提问于 2012-12-28 21:29:42
回答 10查看 254.9K关注 0票数 191

我有一个指令,这是网站标题与后退按钮,我想在点击返回到上一页。我怎么用角度的方式来做呢?

我试过了:

代码语言:javascript
运行
复制
<header class="title">
<a class="back" ng-class="icons"><img src="../media/icons/right_circular.png" ng-click="history.back()" /></a>
<h1>{{title}}</h1>
<a href="/home" class="home" ng-class="icons"><img src="../media/icons/53-house.png" /></a>   
</header>

这是js指令:

代码语言:javascript
运行
复制
myApp.directive('siteHeader', function () {
    return {
        restrict: 'E',
        templateUrl: 'partials/siteHeader.html',
        scope: {
            title: '@title',
            icons: '@icons'
        }
    };
});

但是什么也没发生。我查看了有关$location的angular.js应用程序接口,但没有找到任何关于back按钮或history.back()的内容。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-12-28 21:52:20

您需要在指令中使用链接函数:

代码语言:javascript
运行
复制
link: function(scope, element, attrs) {
     element.on('click', function() {
         $window.history.back();
     });
 }

参见jsFiddle

票数 263
EN

Stack Overflow用户

发布于 2012-12-28 21:45:01

Angular路由会监视浏览器的位置,所以只需使用window.history.back()来单击某些内容即可。

HTML:

代码语言:javascript
运行
复制
<div class="nav-header" ng-click="doTheBack()">Reverse!</div>

JS:

代码语言:javascript
运行
复制
$scope.doTheBack = function() {
  window.history.back();
};

我通常在我的应用程序控制器上创建一个名为'$back‘的全局函数,我通常将其放在body标签上。

代码语言:javascript
运行
复制
angular.module('myApp').controller('AppCtrl', ['$scope', function($scope) {
  $scope.$back = function() { 
    window.history.back();
  };
}]);

然后,在我的应用程序中的任何地方,我都可以执行<a ng-click="$back()">Back</a>

(如果您希望它更具可测试性,请将$window服务注入您的控制器并使用$window.history.back())。

票数 134
EN

Stack Overflow用户

发布于 2014-04-29 05:04:23

理想情况下,使用简单的指令使控制器不受冗余$window的影响

代码语言:javascript
运行
复制
app.directive('back', ['$window', function($window) {
        return {
            restrict: 'A',
            link: function (scope, elem, attrs) {
                elem.bind('click', function () {
                    $window.history.back();
                });
            }
        };
    }]);

像这样使用:

代码语言:javascript
运行
复制
<button back>Back</button>
票数 65
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14070285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档