angular$timeout在3秒后重定向

angular $timeout redirect after 3secs

本文关键字:重定向 3秒 timeout angular      更新时间:2023-09-26

我正试图使用$timeout和$window.history.back()重定向回上一页。因此,当表单提交时,会显示一条消息,说(谢谢…bla-bla)从这里开始一切都很好,但当重定向回$timeout时,似乎不会生效。

<div class="thankyou" data-ng-show="vm.hideEnquiryForm">
            <h3><i class="fa fa-envelope fa-x2"></i> Thank you for enquiring, we will get back to you as soon as possible.</h3>
                <a href="javascript:history.back()">Return</a>
        </div>
vm.submitForm = function () {
        enquireService.postEnquireForm(vm)
            .then(function (response) {
                //$location.path(vm.returnUrl);
                //console.log($location.path() + ' '+ vm.returnUrl);
                if (!vm.hideEnquiryForm) {
                    vm.hideEnquiryForm = true;
                }
                $timeout(function () {
                   $window.history.back;
                }, 3000);
            })
    }

有很多方法可以做你想做的。。。

在我看来,最好的方法可能是使用路由器暴露的接口(假设你使用的是路由器)。。。

这是一个基于UI顶部的有用帖子。RouterAngular-UI Router获取先前状态,因此,您只需要使用$state.go转到先前状态;

如果你不能做这样的事情,唯一的方法就是使用真正的history对象。。。

vm.submitForm = function () {
  var returnUrl;
  
  enquireService
    .postEnquireForm(vm)
    .then(function (response) {
      var returnUrl = response.returnUrl;
      
      if (!vm.hideEnquiryForm) {
        vm.hideEnquiryForm = true;
      }
    
      return $timeout(window.history.back.bind(window), 3000);
  });
};