【问题标题】:Select Field in Phoenix Templates在 Phoenix 模板中选择字段
【发布时间】:2019-10-09 14:46:26
【问题描述】:

我知道Phoenix 提供了一些不错的 Railsy 助手,它们可以用于以下形式:

  • text_input
  • number_input
  • date_select
  • submit

但我找不到 select 字段。我一直在搜索Phoenix Docs,但找不到任何东西。

所以我的问题是,表单中的选择字段是否有 Phoenix helper

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    我应该一直在搜索 Phoenix.HTML 文档(感谢 José 指出这一点!)

    select 的助手是:

    select(form, field, values, opts \\ [])


    示例:

    # Assuming form contains a User model
    select(form, :age, 0..120)
    #=> <select id="user_age" name="user[age]">
    #   <option value="0">0</option>
    #   ...
    #   <option value="120">120</option>
    #   </select>
    
    select(form, :role, ["Admin": "admin", "User": "user"])
    #=> <select id="user_role" name="user[role]">
    #   <option value="admin">Admin</option>
    #   <option value="user">User</option>
    #   </select>
    
    select(form, :role, ["Admin": "admin", "User": "user"], prompt: "Choose your role")
    #=> <select id="user_role" name="user[role]">
    #   <option value="">Choose your role</option>
    #   <option value="admin">Admin</option>
    #   <option value="user">User</option>
    #   </select>
    

    【讨论】:

    • 任何人都可以确认将 key: value 对传递给 select 函数确实有效吗?我使用的是最新版本的 Phoenix.HTML,但出现错误:protocol String.Chars not implemented for {:Foo, "#229de8"} 如果我只是将一个普通的单个值列表传递给它,效果很好。
    • 尝试字符串键而不是 Atoms
    • 我是,两种方法都试过了。该错误是从
    • @BrandonHoward 这在 Phoenix 1.2.1、Phoenix.HTML 2.9.3 中为我工作:&lt;%= select f, :color, ["Col1": "#229de8", "Col2": "#228de3"] %&gt;
    • @BrandonHoward types = Repo.all(Type) |&gt; Enum.map(&amp;{&amp;1.title, &amp;1.id}) 这对我有用
    【解决方案2】:

    在那里,文档在 Phoenix.HTML 项目中:http://hexdocs.pm/phoenix_html/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 2012-07-23
      • 1970-01-01
      • 2012-04-17
      • 2012-01-18
      相关资源
      最近更新 更多