UrlRuleFactory | @uirouter/react
Options
All
  • Public
  • Public/Protected
  • All
Menu

Creates a UrlRule

Creates a UrlRule from a:

Hierarchy

  • UrlRuleFactory

Index

Constructors

constructor

Properties

router

router: UIRouter

Methods

compile

create

fromRegExp

  • A UrlRule which matches based on a regular expression

    The handler may be either a UrlRuleHandlerFn or a string.

    Handler as a function

    If handler is a function, the function is invoked with:

    • regexp match array (from regexp)
    • url: the current Url (UrlParts)
    • router: the router object (UIRouter)

    Example:

    var rule = factory.fromRegExp(/^\/foo\/(bar|baz)$/, match => "/home/" + match[1])
    var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]
    var result = rule.handler(match); // '/home/bar'

    Handler as string

    If handler is a string, the url is replaced by the string when the Rule is invoked. The string is first interpolated using string.replace() style pattern.

    Example:

    var rule = factory.fromRegExp(/^\/foo\/(bar|baz)$/, "/home/$1")
    var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]
    var result = rule.handler(match); // '/home/bar'

    Parameters

    Returns RegExpRule

fromState

fromUrlMatcher

  • A UrlRule which matches based on a UrlMatcher

    The handler may be either a string, a UrlRuleHandlerFn or another UrlMatcher

    Handler as a function

    If handler is a function, the function is invoked with:

    Example:

    var urlMatcher = $umf.compile("/foo/:fooId/:barId");
    var rule = factory.fromUrlMatcher(urlMatcher, match => "/home/" + match.fooId + "/" + match.barId);
    var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }
    var result = rule.handler(match); // '/home/123/456'

    Handler as UrlMatcher

    If handler is a UrlMatcher, the handler matcher is used to create the new url. The handler UrlMatcher is formatted using the matched param from the first matcher. The url is replaced with the result.

    Example:

    var urlMatcher = $umf.compile("/foo/:fooId/:barId");
    var handler = $umf.compile("/home/:fooId/:barId");
    var rule = factory.fromUrlMatcher(urlMatcher, handler);
    var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }
    var result = rule.handler(match); // '/home/123/456'

    Parameters

    Returns MatcherUrlRule

Static isUrlRule

  • isUrlRule(obj: any): boolean

Generated using TypeDoc