![](/img/trans.png)
[英]Phoenix LiveView form_for raising NoRouteError at POST
[英]form_for issue in Phoenix
我是 Phoenix\/Elixir 的新手,正在嘗試制作一個小聊天應用程序。 我遇到了一些困難,希望你能提供幫助。
這是我的代碼
<%= f = form_for :chat, "#", id: "chat-form", phx_submit: :submit_message %>
<%= text_input f, :message, placeholder: "Enter Message" %>
</form>
根據Phoenix.HTML.Form.form_for/3
的文檔,第一個參數應該是Phoenix.HTML.FormData.t()
類型,當你在那里傳遞一個原子時。
在下面幾行旁邊有點工作。
<%= f = form_for @changeset, "#", id: "chat-form", phx_submit: :submit_message %>
<%= text_input f, :message, placeholder: "Enter Message" %>
</form>
看起來您對構建表單的事實感到(就像我剛剛所做的那樣)是 Phoenix 文檔所建議的,但是您正在使用heex
模板來強制您的 HTML 中的標簽是正確的。
因此,這里有兩種解決方案,具體取決於您正在編寫的應用程序類型。
如果您不使用 LiveView,則將該模板另存為leex
,它會正常工作。
如果您使用的是 LiveView,那么有一種使用form/1
函數構建這些表單的新方法,記錄在此處: https : //hexdocs.pm/phoenix_live_view/Phoenix.LiveView.Helpers.html#form/1
在此處查看新文檔: https<\/a> :\/\/hexdocs.pm\/phoenix_html\/Phoenix.HTML.Form.html#form_for\/3
新語法如下所示:
<%= form_for :chat, "#", id: "chat-form", phx_submit: :submit_message, fn f -> %>
<%= text_input f, :message, placeholder: "Enter Message" %>
<% end %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.