在我的应用程序启动时,我有:
$urlRouterProvider.otherwise('/loading');
这给我带来了控制loadCtrl
。我在这里:
Service.getRoleDetails(config.USER_DETAILS_URL).then(useRoleDetails, handleApiError);
function useRoleDetails(response) {
if (response.id === 1) {
$state.go('home');
}
else
$state.go('master');
}
function handleApiError(error) {
Overlay.applyOverlay(false);
}
此servcie调用和回调函数可以正常工作。如果条件满足,但状态不会改变为home
。我的屏幕仅停留在初始页面。(这是`/ loading'的模板。)
我从来没有遇到过这样的问题$state
,我做错了什么吗?虽然我没有控制台错误
有什么建议吗?
我的配置:
$stateProvider.state('preload', {
url: '/loading',
views: {
"main": {
controller: 'landingPageCtrl as lc',
templateUrl: 'PP/htmls/landing.tpl.html'
}
},
data: {
pageTitle: 'PricingPlan'
}
})
.state('home', {
url: '/pricingplan',
views: {
"main": {
controller: 'PPCtrl as pp',
templateUrl: 'PP/htmls/pricing-position.tpl.html'
}
},
data: {
pageTitle: 'Pricing Plan'
}
})
.state('master', {
url: '/master',
views: {
"main": {
controller: 'masterDataCtrl as mdc',
templateUrl: 'PP/htmls/MasterData/masterData.tpl.html'
}
},
data: {
pageTitle: 'Master Data'
}
})
.state('logout',{
url: '/loggedOut',
views: {
"main": {
controller: 'logOutCtrl as lc',
templateUrl: 'PP/htmls/logout.tpl.html'
}
},
data: {
pageTitle: 'Session Expired'
}
});
}
我进行了更深入的研究,发现Angular和我的上述实现(问题中)都可以。但是,我的$stateChangeStart
事件侦听器中已有一个逻辑。状态更改在那里受到限制。
面对此类问题的任何人都应该在$stateChangeStart
听众中有一个外观。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句