router.transitionTo 仅在 chat page 时中断,但在 users page 等其他链接上可以正常工作

当我尝试触发 urlMethod update 时,router.transitionTo('chat.index') 被中止 isAborted:true,我无法弄清楚为什么会发生这种情况,请协助。

另一方面,我能够使用 router.transitionTo('/categories')router.transitionTo('/users') 来触发和导航,所以我很困惑为什么只有聊天页面导航失败。

导航真的失败了吗?还是它工作正常,只是在控制台打印了一个错误?

如果只是控制台中的错误,那可能是因为 chat.index 是一个重定向,所以你需要类似这样的代码:

router.transitionTo("chat.index").followRedirects();

导航失败。

尝试了您建议的带重定向的方案后,我在控制台中看到了此输出:

{
“_id”: 298,
“_state”: 2,
“_result”: {
“name”: “TransitionAborted”,
“code”: “TRANSITION_ABORTED”
},
“_subscribers”:
}

是否有另一种触发导航的方法?也许有更合适的方法可以做到这一点,我想实现的是点击自定义按钮即可将用户带到聊天页面。@david

这个想法对我来说是合理的。我刚在 meta 上的开发者控制台中尝试了:

Discourse.lookup("service:router").transitionTo("chat.index")

它似乎运行正常。

您测试的用户是否确定可以使用聊天功能?

是的,先生,聊天室可用。我实际上可以通过修改页面 URL 到 https://forum.finsweet.com/chat 来手动导航到聊天页面,并且在加载时它会被重定向到 https://forum.finsweet.com/chat/c/general/2

但是执行 Discourse.lookup("service:router").transitionTo("chat.index") 会失败。

您运行的是最新通过测试的 Discourse 版本吗?能否分享一下该论坛的网址?

已在上面分享 https://forum.finsweet.com

1 个赞

您能尝试进入安全模式,然后在控制台中运行该命令吗?我想知道是否是某个主题或插件的自定义设置影响了过渡 :thinking: