搜索

首页  >  问答  >  正文

无法将路由分配给 vue.js 中的弹出对话框

<p>我正在尝试将路由分配给我使用 vue.js 中的对话框组件制作的自定义弹出窗口,但在使其工作时遇到了一些麻烦。我已经搞砸了很多,老实说,我对如何完成这项工作感到很困惑。这是我的路线文件:</p> <pre class="brush:php;toolbar:false;">routes: [ { path: "/", name: "landing", component: LandingView, children: [ { path: "/register", component: RegistrationForm, }, ], },</pre> <p>我有一个登陆页面,在该登陆页面内,我正在使用 RegistrationForm 组件,该组件包含在我制作的自定义对话框组件内,如下所示:</p> <pre class="brush:php;toolbar:false;"><teleport to="body"> <dialog-modal v-if="isOpenRegister" @close="isOpenRegister = false"> <RegistrationForm @open-login="(isOpenRegister = false), (isOpenLogin = true)" @close-dialog="isOpenRegister = false" /> </dialog-modal> </teleport></pre> <p>我只想在用户单击该弹出窗口时为其分配一条路由。因此,当用户单击注册按钮并激活弹出窗口时,我希望它是 http://localhost:5173/register,而不是现在没有路由,因为它只是 http://localhost:5173。如果这是一个令人困惑的问题,我很抱歉,请尽力解释它,提前致谢!</p>
P粉786800174P粉786800174503 天前653

全部回复(1)我来回复

  • P粉790187507

    P粉7901875072023-09-06 11:04:39

    您应该在某些方法内处理重定向,例如:

    <teleport to="body">
      <dialog-modal v-if="isOpenRegister" @close="isOpenRegister = false">
        <RegistrationForm
          @open-login="openRegister"
          @close-dialog="isOpenRegister = false"
        />
      </dialog-modal>
    </teleport>
    
    <script>
     methods: {
       openRegister() {
         this.$router.push({ path: '/register' })
         // other method logic
       }
     }
    </script>

    回复
    0
  • 取消回复