我正在使用Angular UI-ROUTER从一条路线转换到另一条路线。我正在从第1页过渡到第2页。第2页有一个链接"返回上一页" 。我希望当用户用户点击该链接时("返回上一页"),应该显示第1页而不重新加载。
我用过" history.back"没有成功。
<a href="#/my_devices/all_devices" on-click="history.back()" ></a>
请帮助
答案 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)制作的,所以不应该有任何页面重新加载或刷新