add support for path-y arguments to route args
This commit is contained in:
parent
f321750896
commit
d5add06c6c
1 changed files with 3 additions and 2 deletions
|
|
@ -306,12 +306,13 @@ Mithril = m = new function app(window) {
|
||||||
for (var route in router) {
|
for (var route in router) {
|
||||||
if (route == path) return !void m.module(root, router[route])
|
if (route == path) return !void m.module(root, router[route])
|
||||||
|
|
||||||
var matcher = new RegExp("^" + route.replace(/:[^\/]+/g, "([^\\/]+)") + "$")
|
var matcher = new RegExp("^" + route.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "$")
|
||||||
|
|
||||||
if (matcher.test(path)) {
|
if (matcher.test(path)) {
|
||||||
return !void path.replace(matcher, function() {
|
return !void path.replace(matcher, function() {
|
||||||
var keys = route.match(/:[^\/]+/g)
|
var keys = route.match(/:[^\/]+/g)
|
||||||
var values = [].slice.call(arguments, 1, -2)
|
var values = [].slice.call(arguments, 1, -2)
|
||||||
for (var i = 0; i < keys.length; i++) routeParams[keys[i].slice(1)] = values[i]
|
for (var i = 0; i < keys.length; i++) routeParams[keys[i].replace(/:|\./g, "")] = values[i]
|
||||||
m.module(root, router[route])
|
m.module(root, router[route])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue