m.route.param返回“未定义”

时间:2019-08-17 20:12:06

标签: javascript mithril.js

我定义了路由:

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'));

我只能得到未定义的。为什么?

1 个答案:

答案 0 :(得分:0)

原则上,您使用API​​的方式没有错,但是有些事情可能会出错。按照构造伪代码的方式,可能是您试图从m.route.param内部调用onmatch。在这种情况下,问题可能是m.route.getm.route.param将查询当前解析的路由,直到RouteResolver的onmatch函数执行完毕-或在如果它返回一个承诺,该承诺已经解决-那么该路由尚未被认为是当前路由(如果有,则先前的路由将在m.route.param中公开)。查询要匹配的路由的方法是调用onmatch的参数。

This demo queries the different available APIs at different times

如果这不能解决您的问题,请过来讨论in the Mithril chatroom,以便我们详细讨论问题!