m.route.param returns "undefined"
m.route.param returns "undefined"
我已经定义了路由:
m.route(document.getElementById('artists'), "/", {
"/auth/:token/:refresh": {
onmatch: (args) => {
...
}
}
});
当我打开 URL mysite/#!/auth/456456/54645646 并尝试使用
调试我的代码时
console.log( m.route.param('token'), m.route.param('refresh'));
我只得到未定义的。为什么?
原则上,您使用 API 的方式没有任何问题,但有些地方可能会出错。按照您构建虚拟代码的方式,您可能正试图从 onmatch
内部调用 m.route.param
。在这种情况下,问题是 m.route.get
& m.route.param
将查询 当前解析的 路由,直到 RouteResolver 的 onmatch
函数完成执行- 或者在它 returns 一个承诺的情况下,那个承诺已经解决 - 那么这条路线还没有被认为是当前的(以前的路线,如果有的话,将在 m.route.param
中公开)。查询正在匹配的路由的方法是调用onmatch
的参数。
This demo queries the different available APIs at different times.
如果这不能解决您的问题,请来讨论in the Mithril chatroom我们可以详细讨论问题!
我已经定义了路由:
m.route(document.getElementById('artists'), "/", {
"/auth/:token/:refresh": {
onmatch: (args) => {
...
}
}
});
当我打开 URL mysite/#!/auth/456456/54645646 并尝试使用
调试我的代码时console.log( m.route.param('token'), m.route.param('refresh'));
我只得到未定义的。为什么?
原则上,您使用 API 的方式没有任何问题,但有些地方可能会出错。按照您构建虚拟代码的方式,您可能正试图从 onmatch
内部调用 m.route.param
。在这种情况下,问题是 m.route.get
& m.route.param
将查询 当前解析的 路由,直到 RouteResolver 的 onmatch
函数完成执行- 或者在它 returns 一个承诺的情况下,那个承诺已经解决 - 那么这条路线还没有被认为是当前的(以前的路线,如果有的话,将在 m.route.param
中公开)。查询正在匹配的路由的方法是调用onmatch
的参数。
This demo queries the different available APIs at different times.
如果这不能解决您的问题,请来讨论in the Mithril chatroom我们可以详细讨论问题!