You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OGX.JS配置动态路由后无法捕获参数__route_data为null如何解决

问题原因
  1. 你当前路由规则末尾加的:OML标记是OGX.JS的路由模式标识,代表该路由命中后直接走OML模板渲染逻辑,不会触发自定义视图的路由参数注入流程,因此构造方法拿到的__route_data永远为null。
  2. OGX.JS只有绑定到自定义视图的普通无后缀路由,才会把正则表达式捕获组匹配到的内容,按顺序作为第二个参数传入视图的construct方法。带模式后缀的路由生命周期由对应渲染器接管,参数不会透传给自定义视图类。
修复步骤
  • 修改路由配置,删除末尾的:OML后缀,绑定自定义视图的正确路由写法如下:
"mystage/invoices/([a-z0-9]{24})/([a-z0-9]{24})": "invoices"
  • 检查视图注册逻辑,确认invoices视图是通过OGX.Views.add标准方式注册的自定义视图,不存在同名的OML模板、UX组件产生优先级冲突。
  • 如果修改路由后仍存在参数获取异常,可以直接通过全局路由对象读取匹配到的参数做兜底,代码示例:
this.construct = function(__data, __route_data){        
    const route_params = __route_data || OGX.Route.params;
    console.log('ROUTE', route_params);
    // 按捕获组顺序取值:第一个24位字符串为route_params[0],第二个为route_params[1]
    const biz_id = route_params[0];
    const record_id = route_params[1];
};

补充说明:OGX.JS支持的路由模式后缀包括:OML(渲染OML模板)、:Ux(渲染UX组件)、:Cmp(渲染通用组件),这类后缀路由的参数不会自动注入自定义视图构造方法,需要手动从OGX.Route.params读取。

内容的提问来源于stack exchange,提问作者steveso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:24:23