Zu Beginn meiner app, ich habe:Warum wird mein Angular-Status nicht geladen?
$urlRouterProvider.otherwise('/loading');
die Kontrolle meiner loadCtrl
bringt. Hier habe ich:
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);
}
Diese Service Call und Callback-Funktion funktioniert gut. Die if - Bedingungen werden erfüllt, aber irgendwie ändert sich der Status nicht zu home
. Mein Bildschirm bleibt nur auf der Startseite hängen. (Das ist die Vorlage für `/ loading '.)
Ich habe noch nie ein solches Problem mit $state
konfrontiert, mache ich etwas falsch ?? Obwohl ich keine Konsolenfehler habe
Jeder Vorschlag?
Mein config:
$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'
}
});
}
Sind Sie sicher, dass, wenn (response.id === 1) richtig funktioniert? Wenn ja, können Sie versuchen, $ location.path ("yoRState") durch Injektion von $ location in Ihrem Controller –
Ja..der if Bedingung wird wahr .. –
dann etwas mit dem Zustand, der mit dem Aufruf oder der Deklaration arbeitet, warum wird es in den Ladezustand verschoben, wie Sie es als Standard in der Statuskonfiguration erwähnt haben .otherwise ('/ loading'); –