J'utilise une approche similaire à celle d'Endy Tjahjono.
Ce que je fais, c'est de sauvegarder la valeur de l'état actuel avant d'effectuer une transition. Voyons un exemple ; imaginez ceci à l'intérieur d'une fonction exécutée lorsque vous cliquez sur ce qui déclenche la transition :
$state.go( 'state-whatever', { previousState : { name : $state.current.name } }, {} );
La clé ici est l'objet params (une carte des paramètres qui seront envoyés à l'état) -> { previousState : { name : $state.current.name } }
Remarque : je ne "sauvegarde" que l'attribut name de l'objet $state, car c'est la seule chose dont j'ai besoin pour sauvegarder l'état. Mais nous pourrions avoir l'objet state entier.
Ensuite, l'état "peu importe" a été défini comme ceci :
.state( 'user-edit', {
url : 'whatever'
templateUrl : 'whatever',
controller: 'whateverController as whateverController',
params : {
previousState: null,
}
});
Ici, le point clé est l'objet params.
params : {
previousState: null,
}
Ensuite, à l'intérieur de cet état, nous pouvons obtenir l'état précédent comme ceci :
$state.params.previousState.name