javascript - m.route.param 返回“未定义”
问题描述
我已经定义了路由:
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 的方式没有任何问题,但有些事情可能会出错。按照您构建虚拟代码的方式,可能是您试图m.route.param
从内部调用onmatch
。在这种情况下,问题将是m.route.get
&m.route.param
将查询当前解析的路由,并且直到 RouteResolver 的 onmatch
函数完成执行 - 或者在它返回一个承诺的情况下,该承诺已经解决 - 然后该路由还没有被认为是是当前的(之前的路线,如果有的话,将在 中公开m.route.param
)。查询正在匹配的路由的方法是调用onmatch
的参数。
如果这不能解决您的问题,请来秘银聊天室讨论,我们可以详细讨论问题!
推荐阅读
- node.js - 如何为 Node.js、express、ejs 路由构建外部 API 调用?
- angular - 如何修复无法读取角度数据表上未定义的属性“长度”
- r - 不能在 R 中使用以数字命名的变量
- sorting - Dart 自定义列表排序
- erlang - 如何与不是 gen_servers 的工作人员一起运行主管?
- java - 尝试从当前日期计算出生日期时二元运算符 && 的错误操作数类型
- julia - 在 Julia 中解包返回地图
- javascript - 无论大小写如何,如何检查键值对是否匹配?
- arrays - 如何在线性时间内找到数组中所有可能子数组的乘积?
- formik - formik 警告,组件正在更改要控制的文本类型的不受控制的输入