似乎与 #10945 有关。
我的用例是:当用户尝试使用过期的令牌进行导航(通过让窗口打开足够长的时间)时,API 调用将因未经授权的错误而失败。 我们在应用程序的错误操作中添加了一些逻辑来捕获此类错误,重新验证用户并在验证后重试转换。 问题是,当我尝试transition.retry()
到带有动态段和查询参数的路由refreshModel
,它将失败并出现以下错误:
You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route [route name]
如果我将查询参数设置为refreshModel: false
,它就可以正常工作。
这是一个可重复的旋转: https ://ember-twiddle.com/e25fc434b6e1c1627e553b8120203655 = routes.dynamic-segment.js%2C
单击“带有查询参数的动态段”链接时,您会看到错误。 如果您将 /routes/dynamic-segment.js 上的refreshModel
更改false
,它会起作用。
任何帮助表示赞赏。 谢谢!
在尝试transition.retry()
由Route.refresh()
触发的 Transition 时,我遇到了类似的情况,其中queryParamsOnly: true
我想这与 #16921 有某种关系
我发现Route#refresh()
会产生一个转换,如果有动态段,则无法重试。
这是我的用例: https :
@krukid - 您提到的问题似乎与此处讨论的原始问题有些无关(我认为)。 你介意为此提交一个新问题吗?
@rreckonerr最近修复了一个有点相关的错误(在进行中间转换时我们不会遍历原始值),这似乎有点相关。 我认为这里的第一步是在 router.js 中创建一个失败的测试用例......
最有用的评论
@krukid - 您提到的问题似乎与此处讨论的原始问题有些无关(我认为)。 你介意为此提交一个新问题吗?
@rreckonerr最近修复了一个有点相关的错误(在进行中间转换时我们不会遍历原始值),这似乎有点相关。 我认为这里的第一步是在 router.js 中创建一个失败的测试用例......