我定义了路由:
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'));
我只能得到未定义的。为什么?
答案 0 :(得分:0)
原则上,您使用API的方式没有错,但是有些事情可能会出错。按照构造伪代码的方式,可能是您试图从m.route.param
内部调用onmatch
。在这种情况下,问题可能是m.route.get
和m.route.param
将查询当前解析的路由,直到RouteResolver的onmatch
函数执行完毕-或在如果它返回一个承诺,该承诺已经解决-那么该路由尚未被认为是当前路由(如果有,则先前的路由将在m.route.param
中公开)。查询要匹配的路由的方法是调用onmatch
的参数。
This demo queries the different available APIs at different times。
如果这不能解决您的问题,请过来讨论in the Mithril chatroom,以便我们详细讨论问题!