UrlRouterProvider | UI-Router
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class UrlRouterProvider

Manages rules for client-side URL

This class manages the router rules for what to do when the URL changes.

Hierarchy

  • UrlRouterProvider

Index

Constructors

Methods

  • deferIntercept(defer: any): 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
    
    var app = angular.module('app', ['ui.router']);
    
    app.config(function ($urlRouterProvider) {
      // Prevent $urlRouter from automatically intercepting URL changes;
      $urlRouterProvider.deferIntercept();
    })
    
    app.run(function (MyService, $urlRouter, $http) {
      $http.get("/stuff").then(function(resp) {
        MyService.doStuff(resp.data);
        $urlRouter.listen();
        $urlRouter.sync();
      });
    });
    

    Parameters

    • defer: any
      :

      Indicates whether to defer location change interception. Passing no parameter is equivalent to true.

    Returns void


  • otherwise(rule: string | function): UrlRouterProvider
  • Defines the path or behavior to use when no url can be matched.

  • Defines the path or behavior to use when no url can be matched.

    example
    
    var app = angular.module('app', ['ui.router.router']);
    
    app.config(function ($urlRouterProvider) {
      // if the path doesn't match any of the urls you configured
      // otherwise will take care of routing the user to the
      // specified url
      $urlRouterProvider.otherwise('/index');
    
      // Example of using function rule as param
      $urlRouterProvider.otherwise(function ($injector, $location) {
        return '/a/valid/url';
      });
    });
    

    Parameters

    • rule: string | function
      :

      The url path you want to redirect to or a function rule that returns the url path or performs a $state.go(). The function version is passed two params: $injector and $location services, and should return a url string.

    Returns UrlRouterProvider

    :

    $urlRouterProvider - $urlRouterProvider instance


  • removeRule(rule: any): boolean
  • Remove a rule previously registered

  • Remove a rule previously registered

    Parameters

    • rule: any
      :

      the matcher rule that was previously registered using rule

    Returns boolean

    :

    true if the rule was found (and removed)


  • Registers a url handler function.

    Registers a low level url handler (a rule). A rule detects specific URL patterns and returns a redirect, or performs some action.

    If a rule returns a string, the URL is replaced with the string, and all rules are fired again.

    example
    
    var app = angular.module('app', ['ui.router.router']);
    
    app.config(function ($urlRouterProvider) {
      // Here's an example of how you might allow case insensitive urls
      $urlRouterProvider.rule(function ($injector, $location) {
        var path = $location.path(),
            normalized = path.toLowerCase();
    
        if (path !== normalized) {
          return normalized;
        }
      });
    });
    

    Parameters

    • rule: function
      :

      Handler function that takes $injector and $location services as arguments. You can use them to detect a url and return a different url as a string.


  • Registers a handler for a given url matching.

    If the handler is a string, it is treated as a redirect, and is interpolated according to the syntax of match (i.e. like String.replace() for RegExp, or like a UrlMatcher pattern otherwise).

    If the handler is a function, it is injectable. It gets invoked if $location matches. You have the option of inject the match object as $match.

    The handler can return

    • falsy to indicate that the rule didn't match after all, then $urlRouter will continue trying to find another one that matches.
    • string which is treated as a redirect and passed to $location.url()
    • void or any truthy value tells $urlRouter that the url was handled.
    example
    
    var app = angular.module('app', ['ui.router.router']);
    
    app.config(function ($urlRouterProvider) {
      $urlRouterProvider.when($state.url, function ($match, $stateParams) {
        if ($state.$current.navigable !== state ||
            !equalForKeys($match, $stateParams) {
         $state.transitionTo(state, $match, false);
        }
      });
    });
    

    Parameters

    • what: RegExp | UrlMatcher | string
      :

      A pattern string to match, compiled as a UrlMatcher.

    • handler: string | IInjectable
      :

      The path (or function that returns a path) that you want to redirect your user to.

    • ruleCallback Default value: (Anonymous function) = function(rule) {}
      :

      A callback that receives the rule registered with [[UrlMatcher.rule]]

      Note: the handler may also invoke arbitrary code, such as $state.go()


Generated using TypeDoc