AngularJS:浏览器返回不适用于带有$ state.go

时间:2015-12-27 07:10:07

标签: angularjs angular-ui-router

我正在使用带有子菜单的TAB构建一个页面,如下面的链接所示,使用ui-router实现此目的。

请参阅代码段: http://plnkr.co/edit/OoywuaKkYLtYcVG659Mw?p=preview

最终用户界面将如下所示,其中仪表板是订购商和报告。

Home   Dashboard
        Order              Report 
          Step 1             Step 1 
          Step 2             Step 2

在仪表板页面上,我有一个使用下面提到的功能导航到子状态的逻辑。

$scope.navigateToStep = function(chapter, step){
  console.log('navigateToStep is loaded');

        switch(chapter) {
          case 1: {
            switch(step) {
              case 1: {
                //do some extra logic and navigate to Step 1.
                $state.go('dashboard.order.step1',{},{reload:true});         
                break;
              }
              case 2: { $state.go('dashboard.order.step2',{}, reload:true}); break;}
              default: console.log("correct step not provided");
            }
            break;
          }
          case 2: {
            switch(step) {
              case 1: { $state.go('dashboard.report.step1',{},{reload:true}); break;}
              case 2: { $state.go('dashboard.report.step2',{},{reload:true}); break;}
              default: console.log("correct step not provided");
            }
            break;
          }
         default:{}
        }
      }
});

当我点击步骤1或步骤2时,导航工作正常,但浏览器历史记录后退按钮的行为方式不应该如此。

例如:如果假设,

  • 导航至dashboard / order / step1,
  • 导航至dashboard / order / step2
  • 点击历史记录返回按钮,理想情况下应该返回到信息中心/订单/步骤1,但事实并非如此。
  • 此外,我可以将网址重置为父状态。

https://github.com/angular-ui/ui-router/issues/1583上发布的ui-router上存在类似的问题,但它没有提供解决方案。

感谢您对此提出的宝贵建议。

由于

0 个答案:

没有答案