【问题标题】:Phoenix keep conn from redirecting away from LiveviewPhoenix 阻止 conn 从 Liveview 重定向
【发布时间】:2021-08-12 20:21:02
【问题描述】:

我有一个带有表单的 Liveview,用户可以在其中做出几个选择,然后在提交表单时将发布请求发送到标准 controller 以处理下载。我在controller :download 操作中有一个case 语句,它在成功创建下载时发送下载,这工作正常。我不知道如何防止另一个 :error 案例从 Liveview 重定向。

case get_report do
  {:ok, csv} ->
    conn
    |> send_download({:binary, csv}, filename: "test.csv")
  {:error, _msg} ->
    do_something_pub_subby()
    conn
    |> ????
end

【问题讨论】:

    标签: elixir phoenix-framework phoenix phoenix-live-view


    【解决方案1】:

    几个月前我不得不这样做,我最终重定向到 LiveView 路由,如下所示:

    case get_report do
      {:ok, csv} ->
        conn
        |> send_download({:binary, csv}, filename: "test.csv")
      {:error, _msg} ->
        do_something_pub_subby()
        conn
        |> put_flash(:error, ""unable to download)
        |> redirect(to: Routes.home_index_path(conn, :index))
    end
    

    但它变得有点难看。我发现自己经常将事情分配给 conn 以使这种事情发挥作用。

    你应该看看这个库:https://github.com/karolsluszniak/phoenix_live_controller 我自己没有尝试过,但我很确定它支持你想要做的事情。

    【讨论】:

    • 这就是我最终的结果,但我不喜欢它如何重新加载整个页面,即使它对普通用户来说并不是很明显。那个图书馆的链接,我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 2018-12-23
    相关资源
    最近更新 更多