web-dev-qa-db-fra.com

Comment voir quels états sont configurés dans AngularJS / UI-Router?

Existe-t-il un moyen de voir tous les états qui ont été définis sur $stateProvider?

Dans ce cas, je souhaite que mes affectations d'état soient réparties sur de nombreux fichiers. Je voudrais inspecter les états construits sur run ou config dans un fichier différent.

Par exemple:

# component1.coffee
angular.module('Zoo').config ($stateProvider) ->
  $stateProvider.state 'component1',
    url: '/component1'
    template: _template
    controller: 'Component1Ctrl'

# component2.coffee
angular.module('Zoo').config ($stateProvider) ->
  $stateProvider.state 'component2',
    url: '/component2'
    template: _template
    controller: 'Component2Ctrl'

# componentNavigation.coffee
angular.module('Zoo').run ($state) ->
  console.log 'All configured states:', $state.configuredStates # doesn't exist.

Y a-t-il quelque chose qui énumérera les deux états, component1 et component2?

45
SimplGy

$state.get()

renvoie un tableau de tous les états. Inclut l'état abstrait de niveau supérieur, mais vous pouvez le filtrer si vous le souhaitez.

Comment énumérer les états enregistrés dans ui-router?

95
SimplGy

Pour les personnes qui essaient d'obtenir des itinéraires URL réels, y compris des états imbriqués correctement affichés:

$state.get().map(function(state) { return $state.href(state.name) })

// => ['/login', '/home', '/something']
7
Jacka