AngularJS : Transmettre des données de l'état $à l'état.aller dans angular-ui-router

Je suis en train de faire un éditeur de documents. Les Documents peuvent être de Type A ou de Type B. Ils sont accessibles à l'url spécifiée par l'id du document, mais le code ne précise pas si le document est de type A ou B.

Donc, j'ai besoin de charger le document en id, déterminer son type de données, puis de passer à la TypeAController ou TypeBController.

Droit maintenant, avec l'interface utilisateur du routeur, j'ai quelque chose comme ceci:

$stateProvider
.state('loading', {
    url: '/{documentId}',
    template: 'Loading...',
    controller: function ($stateParams, $state) {
        loadDocument($stateParams.documentId)
            .then(function (loadedDocument) {
                if (loadedDocument.type === 'A') {
                    $state.go('EditA');
                } else if (loadedDocument.type === 'B') {
                    $state.go('EditB');
                }
            })
    }
})
.state('A', {...})
.state('B', {...})

Le chargement de l'état charge le document, détermine son type, puis passe à l'état suivant.

Frustrant, cependant, je ne peux pas trouver un moyen de passer le document chargé de la prochaine unis! Je peux faire un globalish service dans lequel je peux insérer le document, ou je peux juste passer l'id du document et de le charger à nouveau dans chaque état (espérons-le, à partir d'un cache en ce moment), mais ces méthodes sont tellement maladroit et tout le reste sur angulaire et angulaire de l'interface utilisateur a été si bon.

Des suggestions?

OriginalL'auteur Riley Lark | 2013-11-17