Używam routera UI w moim projekcie. Strona główna mojej aplikacji składa się z 4 zakładek, z których każda prowadzi do innego szablonu. To jest mój obecny kod routingu, używam forEacha do utworzenia 6 tras.ui-router: trasa domyślna oparta na roli użytkownika
['Draft','Assigned','InProgress','Completed','Rejected','All'].forEach(function (val) {
$stateProvider.state({
name: 'root.jobs.list.' + val.toLowerCase(),
url: '/' + val.toLowerCase(),
views: {
'currentTab': {
templateUrl: 'adminworkspace/jobs',
controller: 'JobsController'
}
},
data: {
userJobsStatus: val
}
});
});
Domyślnie, gdy użytkownik się loguje, przechodzi do "root.jobs.list.draft". Jak przekierować do danego stanu na podstawie roli zalogowanego użytkownika (administrator, użytkownik, urzędnik itp.). Jeśli chcesz przekierować wszystkich użytkowników, które są częścią „Inżyniera” lub „Lead Engineer” roli do „root.jobs.list.inprogress”
pierwotnie miał to w kontrolerze, ale jak widać, to nie działa, ponieważ za każdym razem, kliknąłem na karcie, to zawsze trasy z powrotem do „root.jobs.list.inprogress”
if (user !== undefined) {
if (user.BusinessRole == "Engineer" || user.BusinessRole == "Lead Engineer")
$state.go('root.jobs.list.inprogress');
}