Provides state related service functions

This class provides services related to ui-router states. An instance of this class is located on the global UIRouter object.

### Hierarchy

- StateService

## Index

### Constructors

- constructor

### Properties

- invalidCallbacks
- router

### Accessors

- $current
- current
- params
- transition

### Methods

- _handleInvalidTargetState
- defaultErrorHandler
- dispose
- get
- getCurrentPath
- go
- href
- includes
- is
- lazyLoad
- onInvalid
- reload
- target
- transitionTo

## Constructors

- new StateService(router: UIRouter): StateService

- #### Parameters

  - ##### router UIRouter

  #### Returns StateService

  - Defined in state/stateService.ts:69

## Properties

invalidCallbacks: OnInvalidCallback[] = []

- Defined in state/stateService.ts:44

router: UIRouter

- Defined in state/stateService.ts:72

## Accessors

- get $current(): StateObject

- The current StateObject

  This is a passthrough through to UIRouterGlobals.$current

  #### Returns StateObject

  - Defined in state/stateService.ts:69

- get current(): StateDeclaration

- The current StateDeclaration

  This is a passthrough through to UIRouterGlobals.current

  #### Returns StateDeclaration

  - Defined in state/stateService.ts:63

- get params(): StateParams

- The latest successful state parameters

  This is a passthrough through to UIRouterGlobals.params

  #### Returns StateParams

  - Defined in state/stateService.ts:57

- get transition(): Transition

- The Transition currently in progress (or null)

  This is a passthrough through to UIRouterGlobals.transition

  #### Returns Transition

  - Defined in state/stateService.ts:51

## Methods

- _handleInvalidTargetState(fromPath: PathNode[], toState: TargetState): any

- Handler for when transitionTo is called with an invalid state.

- Handler for when transitionTo is called with an invalid state.

  Invokes the onInvalid callbacks, in natural order. Each callback's return value is checked in sequence until one of them returns an instance of TargetState. The results of the callbacks are wrapped in $q.when(), so the callbacks may return promises.

  If a callback returns an TargetState, then it is used as arguments to $state.transitionTo() and the result returned.

  #### Parameters

  - ##### fromPath PathNode[]

  - ##### toState TargetState

  #### Returns any

  - Defined in state/stateService.ts:95

- defaultErrorHandler(handler?: function): function

- Sets or gets the default transitionTo error handler.

- Sets or gets the default transitionTo error handler.

  The error handler is called when a Transition is rejected or when any error occurred during the Transition. This includes errors caused by resolves and transition hooks.

  Note: This handler does not receive certain Transition rejections. Redirected and Ignored Transitions are not considered to be errors by StateService.transitionTo.

  The built-in default error handler logs the error to the console.

  You can provide your own custom handler.

  #### Example:

      stateService.defaultErrorHandler(function() {
        // Do not log transitionTo errors
      });

  #### Parameters

  - ##### handler: Optional function

    :

    a global error handler function

    - - (error: any): void

      - #### Parameters

        - ##### error any

        #### Returns void

  #### Returns function

  :

  the current global error handler

  - - (error: any): void

    - #### Parameters

      - ##### error any

      #### Returns void

  - Defined in state/stateService.ts:556

- dispose(): void

- #### Returns void

  - Defined in state/stateService.ts:79

- get(stateOrName: StateOrName, base: StateOrName): StateDeclaration

- Gets a registered StateDeclaration object

- get(stateOrName: StateOrName): StateDeclaration
- get(): StateDeclaration[]

- Gets a registered StateDeclaration object

  Returns the state declaration object for any specific state, or for all registered states.

  #### Parameters

  - ##### stateOrName StateOrName

    :

    (absolute or relative) If provided, will only get the declaration object for the requested state. If not provided, returns an array of ALL states.

  - ##### base StateOrName

    :

    When `stateOrName` is a relative state reference (such as `.bar.baz`), the state will be retrieved relative to this state.

  #### Returns StateDeclaration

  :

  a StateDeclaration object (or array of all registered StateDeclaration objects.)

  - Defined in state/stateService.ts:571

- #### Parameters

  - ##### stateOrName StateOrName

  #### Returns StateDeclaration

  - Defined in state/stateService.ts:572

- #### Returns StateDeclaration[]

  - Defined in state/stateService.ts:573

- getCurrentPath(): PathNode[]

- #### Returns PathNode[]

  - Defined in state/stateService.ts:284

- go(to: StateOrName, params?: RawParams, options?: TransitionOptions): TransitionPromise

- Transition to a different state and/or parameters

- Transition to a different state and/or parameters

  Convenience method for transitioning to a new state.

  `$state.go` calls `$state.transitionTo` internally but automatically sets options to `{ location: true, inherit: true, relative: router.globals.$current, notify: true }`. This allows you to use either an absolute or relative `to` argument (because of `relative: router.globals.$current`). It also allows you to specify * only the parameters you'd like to update, while letting unspecified parameters inherit from the current parameter values (because of `inherit: true`).

  #### Example:

      let app = angular.module('app', ['ui.router']);

      app.controller('ctrl', function ($scope, $state) {
        $scope.changeState = function () {
          $state.go('contact.detail');
        };
      });

  #### Parameters

  - ##### to StateOrName

    :

    Absolute state name, state object, or relative state path (relative to current state).

    Some examples:

    - `$state.go('contact.detail')` - will go to the `contact.detail` state
    - `$state.go('^')` - will go to the parent state
    - `$state.go('^.sibling')` - if current state is `home.child`, will go to the `home.sibling` state
    - `$state.go('.child.grandchild')` - if current state is home, will go to the `home.child.grandchild` state

  - ##### params: Optional RawParams

    :

    A map of the parameters that will be sent to the state, will populate $stateParams.

    Any parameters that are not specified will be inherited from current parameter values (because of `inherit: true`). This allows, for example, going to a sibling state that shares parameters defined by a parent state.

  - ##### options: Optional TransitionOptions

    :

    Transition options

  #### Returns TransitionPromise

  :

  A promise representing the state of the new transition.

  - Defined in state/stateService.ts:258

- href(stateOrName: StateOrName, params: RawParams, options?: HrefOptions): string

- Generates a URL for a state and parameters

- Generates a URL for a state and parameters

  Returns the url for the given state populated with the given params.

  #### Example:

      expect($state.href("about.person", { person: "bob" })).toEqual("/about/bob");

  #### Parameters

  - ##### stateOrName StateOrName

    :

    The state name or state object you'd like to generate a url from.

  - ##### params RawParams

    :

    An object of parameter values to fill the state's required parameters.

  - ##### options: Optional HrefOptions

    :

    Options object. The options are:

  #### Returns string

  :

  compiled state url

  - Defined in state/stateService.ts:493

- includes(stateOrName: StateOrName, params?: RawParams, options?: TransitionOptions): boolean

- Checks if the current state includes the provided state

- Checks if the current state includes the provided state

  A method to determine if the current active state is equal to or is the child of the state stateName. If any params are passed then they will be tested for a match as well. Not all the parameters need to be passed, just the ones you'd like to test for equality.

  #### Example when `$state.$current.name === 'contacts.details.item'`

      // Using partial names
      $state.includes("contacts"); // returns true
      $state.includes("contacts.details"); // returns true
      $state.includes("contacts.details.item"); // returns true
      $state.includes("contacts.list"); // returns false
      $state.includes("about"); // returns false

  #### Glob Examples when `* $state.$current.name === 'contacts.details.item.url'`:

      $state.includes("*.details.*.*"); // returns true
      $state.includes("*.details.**"); // returns true
      $state.includes("**.item.**"); // returns true
      $state.includes("*.details.item.url"); // returns true
      $state.includes("*.details.*.url"); // returns true
      $state.includes("*.details.*"); // returns false
      $state.includes("item.**"); // returns false

  #### Parameters

  - ##### stateOrName StateOrName

    :

    A partial name, relative name, glob pattern, or state object to be searched for within the current state name.

  - ##### params: Optional RawParams

    :

    A param object, e.g. `{sectionId: section.id}`, that you'd like to test against the current active state.

  - ##### options: Optional TransitionOptions

    :

    An options object. The options are:

    - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will test relative to `options.relative` state (or name).

  #### Returns boolean

  :

  Returns true if it does include the state

  - Defined in state/stateService.ts:458

- is(stateOrName: StateOrName, params?: RawParams, options?: object): boolean

- Checks if the current state is the provided state

- Checks if the current state is the provided state

  Similar to includes but only checks for the full state name. If params is supplied then it will be tested for strict equality against the current active params object, so all params must match with none missing and no extras.

  #### Example:

      $state.$current.name = 'contacts.details.item';

      // absolute name
      $state.is('contact.details.item'); // returns true
      $state.is(contactDetailItemStateObject); // returns true

  // relative name (. and ^), typically from a template // E.g. from the 'contacts.details' template

      <div ng-class="{highlighted: $state.is('.item')}">Item</div>

  #### Parameters

  - ##### stateOrName StateOrName

    :

    The state name (absolute or relative) or state object you'd like to check.

  - ##### params: Optional RawParams

    :

    A param object, e.g. `{sectionId: section.id}`, that you'd like to test against the current active state.

  - ##### options: Optional object

    :

    An options object. The options are:

    - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will test relative to `options.relative` state (or name).

    - ##### Optional relative?: StateOrName

  #### Returns boolean

  :

  Returns true if it is the state.

  - Defined in state/stateService.ts:409

- lazyLoad(stateOrName: StateOrName, transition?: Transition): Promise<LazyLoadResult>

- Lazy loads a state

- Lazy loads a state

  Explicitly runs a state's StateDeclaration.lazyLoad function.

  #### Parameters

  - ##### stateOrName StateOrName

    :

    the state that should be lazy loaded

  - ##### transition: Optional Transition

    :

    the optional Transition context to use (if the lazyLoad function requires an injector, etc) Note: If no transition is provided, a noop transition is created using the from the current state to the current state. This noop transition is not actually run.

  #### Returns Promise<LazyLoadResult>

  :

  a promise to lazy load

  - Defined in state/stateService.ts:592

- onInvalid(callback: OnInvalidCallback): Function

- Registers an Invalid State handler

- Registers an Invalid State handler

  Registers a OnInvalidCallback function to be invoked when StateService.transitionTo has been called with an invalid state reference parameter

  Example:

      stateService.onInvalid(function(to, from, injector) {
        if (to.name() === 'foo') {
          let lazyLoader = injector.get('LazyLoadService');
          return lazyLoader.load('foo')
              .then(() => stateService.target('foo'));
        }
      });

  #### Parameters

  - ##### callback OnInvalidCallback

    :

    invoked when the toState is invalid This function receives the (invalid) toState, the fromState, and an injector. The function may optionally return a TargetState or a Promise for a TargetState. If one is returned, it is treated as a redirect.

  #### Returns Function

  :

  a function which deregisters the callback

  - Defined in state/stateService.ts:158

- reload(reloadState?: StateOrName): Promise<StateObject>

- Reloads the current state

- Reloads the current state

  A method that force reloads the current state, or a partial state hierarchy. All resolves are re-resolved, and components reinstantiated.

  #### Example:

      let app angular.module('app', ['ui.router']);

      app.controller('ctrl', function ($scope, $state) {
        $scope.reload = function(){
          $state.reload();
        }
      });

  Note: `reload()` is just an alias for:

      $state.transitionTo($state.current, $state.params, {
        reload: true, inherit: false
      });

  #### Parameters

  - ##### reloadState: Optional StateOrName

    :

    A state name or a state object. If present, this state and all its children will be reloaded, but ancestors will not reload.

    #### Example:

        //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'
        //and current state is 'contacts.detail.item'
        let app angular.module('app', ['ui.router']);

        app.controller('ctrl', function ($scope, $state) {
          $scope.reload = function(){
            //will reload 'contact.detail' and nested 'contact.detail.item' states
            $state.reload('contact.detail');
          }
        });

  #### Returns Promise<StateObject>

  :

  A promise representing the state of the new transition. See StateService.go

  - Defined in state/stateService.ts:210

- target(identifier: StateOrName, params?: RawParams, options?: TransitionOptions): TargetState

- Creates a TargetState

- Creates a TargetState

  This is a factory method for creating a TargetState

  This may be returned from a Transition Hook to redirect a transition, for example.

  #### Parameters

  - ##### identifier StateOrName

  - ##### params: Optional RawParams

  - ##### options: Default value TransitionOptions = {}

  #### Returns TargetState

  - Defined in state/stateService.ts:271

- transitionTo(to: StateOrName, toParams?: RawParams, options?: TransitionOptions): TransitionPromise

- Low-level method for transitioning to a new state.

- Low-level method for transitioning to a new state.

  The go method (which uses `transitionTo` internally) is recommended in most situations.

  #### Example:

      let app = angular.module('app', ['ui.router']);

      app.controller('ctrl', function ($scope, $state) {
        $scope.changeState = function () {
          $state.transitionTo('contact.detail');
        };
      });

  #### Parameters

  - ##### to StateOrName

    :

    State name or state object.

  - ##### toParams: Default value RawParams = {}

    :

    A map of the parameters that will be sent to the state, will populate $stateParams.

  - ##### options: Default value TransitionOptions = {}

    :

    Transition options

  #### Returns TransitionPromise

  :

  A promise representing the state of the new transition. See go

  - Defined in state/stateService.ts:314

Generated using TypeDoc