手动触发导航到所有聊天页面和单个用户聊天页面

您好,如何手动触发导航到用户聊天?

我有一个用户列表,在用户页面上渲染,我想附加一个聊天按钮,以触发导航到该用户聊天页面,类似于屏幕截图中此聊天按钮所做的操作

我尝试将此回调附加到按钮,

customChatButton.addEventListener('click', () => {
    window.Discourse.router.transitionTo(`/chat/c/${username}`)
});

但这会将我带到“页面不存在或为私有”。

另外,在该用户表中,我有一个自定义的“所有聊天”按钮,我希望当用户单击它时,它将他们带到“所有聊天”页面,全屏显示,而不是从屏幕右下角触发聊天弹出窗口。

此命令似乎不起作用:

goToAllChatButton.addEventListener('click', () => {
    window.Discourse.router.transitionTo(`/chat`)
});

您可以直接使用此组件:

<Chat::DirectMessageButton @user={{user}} @modal={{true}} />
3 个赞

感谢您的回复@j.jaffeux,是否可以直接使用 router 对象来实现?