UrlRuleFactory | @uirouter/angularjs
Options
Menu

Class UrlRuleFactory

Creates a UrlRule

Creates a UrlRule from a:

Hierarchy

  • UrlRuleFactory

Index

Constructors

  • Parameters

    Returns UrlRuleFactory


Properties

router: UIRouter

Methods

  • Parameters

    • str string

    Returns UrlMatcher


  • fromRegExp(regexp: RegExp, handler: string | UrlRuleHandlerFn): RegExpRule
  • A UrlRule which matches based on a regular expression

  • 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


  • A UrlRule which matches a state by its url

    Example:

    var rule = factory.fromState($state.get('foo'), router);
    var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }
    var result = rule.handler(match);
    // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }

    Parameters

    Returns StateRule


  • 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


  • isUrlRule(obj: any): boolean
  • Parameters

    • obj any

    Returns boolean


Generated using TypeDoc