StateRegistry | @uirouter/angular
  • Public
  • Public/Protected
  • All

A registry for all of the application's StateDeclarations

This API is found at router.stateRegistry (UIRouter.stateRegistry)


  • StateRegistry




  • Registers a BuilderFunction for a specific StateObject property (e.g., parent, url, or path). More than one BuilderFunction can be registered for a given property.

    The BuilderFunction(s) will be used to define the property on any subsequently built StateObject objects.


    • property: string

      The name of the State property being registered for.

    • builderFunction: BuilderFunction

      The BuilderFunction which will be used to build the State property

    Returns Function

    a function which deregisters the BuilderFunction


  • Removes a state from the registry

    This removes a state from the registry. If the state has children, they are are also removed from the registry.


    • stateOrName: StateOrName

      the state's name or object representation

    Returns StateObject[]

    a list of removed states


  • Gets all registered states

    Calling this method with no arguments will return a list of all the states that are currently registered. Note: this does not return states that are queued but not yet registered.

    Returns StateDeclaration[]

    a list of StateDeclarations

  • Gets a registered state

    Given a state or a name, finds and returns the StateDeclaration from the registry. Note: this does not return states that are queued but not yet registered.


    • stateOrName: StateOrName

      either the name of a state, or a state object.

    • Optional base: StateOrName

      the base state to use when stateOrName is relative.

    Returns StateDeclaration

    a registered StateDeclaration that matched the stateOrName, or null if the state isn't registered.


  • Listen for a State Registry events

    Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.


    let allStates = registry.get();
    // Later, invoke deregisterFn() to remove the listener
    let deregisterFn = registry.onStatesChanged((event, states) => {
      switch(event) {
        case: 'registered':
          states.forEach(state => allStates.push(state));
        case: 'deregistered':
          states.forEach(state => {
            let idx = allStates.indexOf(state);
            if (idx !== -1) allStates.splice(idx, 1);


    Returns () => void

    a function that deregisters the listener

      • (): void
      • Returns void


  • Adds a state to the registry

    Registers a StateDeclaration or queues it for registration.

    Note: a state will be queued if the state's parent isn't yet registered.


    Returns StateObject

    the internal StateObject object. If the state was successfully registered, then the object is fully built (See: StateBuilder). If the state was only queued, then the object is not fully built.


  • Gets the implicit root state

    Gets the root of the state tree. The root state is implicitly created by UI-Router. Note: this returns the internal StateObject representation, not a StateDeclaration

    Returns StateObject

    the root StateObject

Generated using TypeDoc