我认为这是一个简单的问题,但在谷歌上找不到。我使用的是角1.5和ui-router 1.5。如何检查当前的ui-view状态是否具有下一个ui-state? (这是必需的,因为我想检查当按下后退按钮或直接链接时是否加载了当前的ui-view)
client.close()
我尝试过使用Case 1
--------
view1 -> view2 -> view3 // now I have pressed back button
view1 -> view2 ? // Here view2 actually had next state that was view3
Case 2
--------
view1 -> view4 -> view2 //Here view2 do not have next ui-state
,但它总是返回null。不知道为什么?任何帮助是极大的赞赏。
答案 0 :(得分:0)
谷歌搜索了4个小时后,我想出了一些自定义解决方案。想分享。必须进行适当的错误处理。
// just listen to statechange success event
app.run(['$rootScope', function($rootScope){
$rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState) {
// if fromState.name is empty, its refresh || first landing
var history = $window.localStorage.getItem('history');
var back = false;
if (history !== null) {
history = JSON.parse(history);
if (toState.name === history.from && fromState.name === history.to) {
back = true;
}
}
$window.localStorage.setItem('history', JSON.stringify({
to: toState.name,
from: fromState.name,
isBack: back
}));
});
});
注意我使用了持久存储技术。一个人也必须处理刷新条件。