UrlRouter | @uirouter/core
Options
Menu

Class UrlRouter

Updates URL and responds to URL changes

Deprecation warning:

This class is now considered to be an internal API Use the UrlService instead. For configuring URL rules, use the UrlRulesApi which can be found as UrlService.rules.

This class updates the URL when the state changes. It also responds to changes in the URL.

Hierarchy

  • UrlRouter

Implements

Index

Properties

urlRuleFactory: UrlRuleFactory

used to create UrlRule objects for common cases

used to create UrlRule objects for common cases

Methods

  • deferIntercept(defer?: boolean): void
  • Disables monitoring of the URL.

  • Disables monitoring of the URL.

    Call this method before UI-Router has bootstrapped. It will stop UI-Router from performing the initial url sync.

    This can be useful to perform some asynchronous initialization before the router starts. Once the initialization is complete, call listen to tell UI-Router to start watching and synchronizing the URL.

    Example:

    // Prevent $urlRouter from automatically intercepting URL changes when it starts;
    urlService.deferIntercept();
    
    $http.get('/states.json').then(function(resp) {
      resp.data.forEach(state => $stateRegistry.register(state));
      urlService.listen();
      urlService.sync();
    });
    

    Parameters

    • defer: Optional  boolean

    Returns void


  • dispose(): void
  • ensureSorted(): void
  • href(urlMatcher: UrlMatcher, params?: any, options?: object): string
  • Builds and returns a URL with interpolated parameters

  • Builds and returns a URL with interpolated parameters

    Example:

    matcher = $umf.compile("/about/:person");
    params = { person: "bob" };
    $bob = $urlRouter.href(matcher, params);
    // $bob == "/about/bob";
    

    Parameters

    • urlMatcher UrlMatcher
      :

      The UrlMatcher object which is used as the template of the URL to generate.

    • params: Optional  any
      :

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

    • options: Optional  object
      :

      Options object. The options are:

      • absolute: boolean

    Returns string

    :

    Returns the fully compiled URL, or null if params fail validation against urlMatcher


  • listen(enabled?: boolean): Function
  • Starts or stops listening for URL changes

  • Starts or stops listening for URL changes

    Call this sometime after calling deferIntercept to start monitoring the url. This causes UrlRouter to start listening for changes to the URL, if it wasn't already listening.

    If called with false, will stop listening. Call listen() again to start listening

    Example:

    urlService.deferIntercept();
    
    $http.get('/states.json').then(function(resp) {
      resp.data.forEach(state => $stateRegistry.register(state));
      // Start responding to URL changes
      urlService.listen();
      urlService.sync();
    });
    

    Parameters

    • enabled: Optional  boolean

    Returns Function


  • Defines the state, url, or behavior to use when no other rule matches the URL.

    This rule is matched when no other rule matches. It is generally used to handle unknown URLs (similar to "404" behavior, but on the client side).

    • If handler a string, it is treated as a url redirect

    Example:

    When no other url rule matches, redirect to /index

    .otherwise('/index');
    
    • If handler is an object with a state property, the state is activated.

    Example:

    When no other url rule matches, redirect to home and provide a dashboard parameter value.

    .otherwise({ state: 'home', params: { dashboard: 'default' } });
    
    • If handler is a function, the function receives the current url (UrlParts) and the UIRouter object. The function can perform actions, and/or return a value.

    Example:

    When no other url rule matches, manually trigger a transition to the home state

    .otherwise((matchValue, urlParts, router) => {
      router.stateService.go('home');
    });
    

    Example:

    When no other url rule matches, go to home state

    .otherwise((matchValue, urlParts, router) => {
      return { state: 'home' };
    });
    

    Parameters

    Returns void


  • Internal API.

    Pushes a new location to the browser history.

    Parameters

    • urlMatcher UrlMatcher
      :
    • params: Optional  RawParams
      :
    • options: Optional  object
      :
      • Optional replace?: string | true | false

    Returns void


  • removeRule(rule: any): void
  • rule(rule: UrlRule): Function
  • Manually adds a URL Rule.

  • Manually adds a URL Rule.

    Usually, a url rule is added using StateDeclaration.url or when. This api can be used directly for more control (to register a BaseUrlRule, for example). Rules can be created using UrlRouter.urlRuleFactory, or create manually as simple objects.

    A rule should have a match function which returns truthy if the rule matched. It should also have a handler function which is invoked if the rule is the best match.

    Parameters

    Returns Function

    :

    a function that deregisters the rule


  • rules(): UrlRule[]
  • Gets all registered rules

  • sort(compareFn?: function): void
  • stableSort(arr: any, compareFn: any): any
  • sync(evt?: any): void
  • Checks the URL for a matching UrlRule

  • Checks the URL for a matching UrlRule

    Checks the current URL for a matching url rule, then invokes that rule's handler. This method is called internally any time the URL has changed.

    This effectively activates the state which matches the current URL.

    Example:

    urlService.deferIntercept();
    
    $http.get('/states.json').then(function(resp) {
      resp.data.forEach(state => $stateRegistry.register(state));
      urlService.listen();
      // Find the matching URL and invoke the handler.
      urlService.sync();
    });
    

    Parameters

    • evt: Optional  any

    Returns void


  • update(read?: boolean): void
  • Internal API.

Generated using TypeDoc