$rootScope.$on('$stateChangeStart', function(event, toState , toParams
, fromState, fromParams) {
if(fromState.name=='home' && toState.name == 'search'){
event.preventDefault();
}
});
我试图阻止状态转变发生。
event.preventDefault()
没有这样做。 我希望国家保持现状。
答案 0 :(得分:4)
您需要什么,应该开箱即用。我创建了a plunker,显示了您的要求。有这三种样本状态
$stateProvider
.state('home', {
url: '/home',
template: '<div>home</div>',
})
.state('search', {
url: '/search',
template: '<div>search</div>',
})
.state('index', {
url: '/index',
template: '<div>index</div>',
})
这个(与问题相同)条件禁止从HOME导航到SEARCH:
$rootScope.$on('$stateChangeStart',
function(event, toState , toParams
, fromState, fromParams)
{
var isFromHome = fromState.name =='home' ;
var isToSearch = toState.name == 'search';
if(isFromHome && isToSearch)
{
event.preventDefault();
}
});
检查here