是否有获取window.history.back()的快捷方式

时间:2014-01-29 22:01:03

标签: angularjs angular-ui-router

AFAIK,让Angular模仿后退按钮行为的唯一方法是通过调用$window.history.back

现在,我有一个带有两个按钮的表单:提交和取消。当我提交时,我有一些自定义逻辑,最后我可以轻松调用back()方法。但是如果没有取消按钮的自定义方法,我怎么能实现相同的目标呢?

这是我目前的html

<div class="form-group">
    <button class="btn btn-primary" ng-click="save(berlet)">Ok</button>
    <a class="btn btn-warning" ui-sref="jogasok">Cancel</a>
</div>

点击back()标记时,我希望有<a>行为。有什么建议吗?我首选的语法是:`Cancel:)

2 个答案:

答案 0 :(得分:4)

制定一个简单的指令,让您的控制器免受多余的窗口污染:

PLUNKER

app.directive('goBack', function($window){
  return function($scope, $element){
    $element.on('click', function(){
      $window.history.back();
    })
  }
});
<a go-back>Cancel</a>

答案 1 :(得分:0)

我最好的想法是将$window服务附加到我的指令,并通过$scope调用后退按钮。

<a class="btn btn-warning" ng-click="window.history.back()">Cancel</a>

在我的指令中我有

$scope.window = $window;