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.
If handler
is a function, the function is invoked with:
regexp
)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'
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.
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'
A UrlRule which matches a state by its url
A UrlRule which matches a state by its url
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' }
A UrlRule which matches based on a UrlMatcher
A UrlRule which matches based on a UrlMatcher
The handler
may be either a string
, a UrlRuleHandlerFn or another UrlMatcher
If handler
is a function, the function is invoked with:
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'
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.
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'
Generated using TypeDoc
Creates a UrlRule
Creates a UrlRule from a:
string
RegExp