Ember JS link-to返回部件列表报错需提供widget_id参数问题排查
问题定位
该报错和路由配置本身无关,核心问题出在两处路由跳转的逻辑写法:
- 非管理员分支的路由名拼写错误
你列表页transition-to的非管理员分支写的是toplevel.setting.widgets.widget,setting缺少后缀s,和你实际存在的toplevel.settings路由不匹配,会导致路由上下文识别异常,跳转后Ember无法正确解析路由参数层级,返回列表页时触发参数校验错误。 - 列表页内存在未传参的
widget子路由跳转逻辑
报错明确指向生成toplevel.settings.widgets.widget路由时缺少widget_id参数,说明你返回列表页时,页面渲染过程中存在某一处调用该子路由但没有传入有效widget_id的逻辑,常见情况包括:
- 列表项循环渲染时,某条
widget数据的id字段为空 - 列表页其他组件/模板内硬编码了指向
widget子路由的跳转逻辑,没有绑定动态参数
解决步骤
- 修正
transition-to的路由名拼写,将非管理员分支改为toplevel.settings.widgets.widget - 检查
toplevel.settings.widgets路由对应的所有模板、组件,确保所有调用widget子路由的跳转逻辑(包括link-to、transition-to、路由内transitionTo方法)都传入了非空的widget_id参数 - 你导航栏的
link-to写法本身没有问题,可简化为<listGroup.link-to @route="toplevel.settings.widgets">Widgets</listGroup.link-to>,和原写法效果完全一致 - 排查
widgets路由的model钩子,确保返回的列表数据中所有条目都存在有效的id字段
内容的提问来源于stack exchange,提问作者rabid_sqrl
相关产品推荐
相关产品推荐

