在我的应用程序开始时,我有:
$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调用和回调函数工作正常。 if - 条件得到满足但不知何故状态不会变为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'
}
});
}
答案 0 :(得分:0)
我深入挖掘并发现Angular和我的上述实现(在问题中)一切正常。但是,我有一个现有的逻辑
$stateChangeStart
事件监听器。国家的变化受到限制。
任何遇到此类问题的人都应该只看一眼$stateChangeStart
听众。