AngularJs UI路由器"链接到上一页"不重新加载上一页

时间:2015-08-20 14:31:17

标签: angularjs angular-ui-router

我正在使用Angular UI-ROUTER从一条路线转换到另一条路线。我正在从第1页过渡到第2页。第2页有一个链接"返回上一页" 。我希望当用户用户点击该链接时("返回上一页"),应该显示第1页而不重新加载。

我用过" history.back"没有成功。

<a href="#/my_devices/all_devices" on-click="history.back()" ></a>

请帮助

2 个答案:

答案 0 :(得分:0)

您可以处理状态更改事件,并将以前的状态设置为变量

$rootScope.$on('$stateChangeSuccess',
  function(event, toState, toParams, fromState, fromParams){
    $rootScope.previousState = {state: fromState, params: fromParams};
  });

$rootScope.backState = function(state, params) {
    $state.go(state.name, params);
};

并在您的视图中

<a href="#" on-click="backState(previousState.state, previousState.params)"></a>

如果您有header组件,最好使用标头scope(代替rootScope),否则将其放在.run()方法上,并设置变量所有范围。

答案 1 :(得分:0)

您正在使用可链接到两个不同页面的链接。只需这样做:

<a href="#/path/to/page1">Previous page</a>

或者,由于您使用的是ui-router,如果您将状态定义为&#39; page1&#39;,即如果您这样做:

angular.module('someModule')
  .state('page1', {
    url: '/path/to/page1',
    etc...
  });

然后你可以这样做:

<a ui-sref="page1">Previous page</a>

Angular是针对单页应用程序(SPA)制作的,所以不应该有任何页面重新加载或刷新