我在凤凰城使用ex_admin在后端创建了一个博客,我想覆盖我博客帖子模板的一些默认输入。
我的帖子具有以下属性:
schema "posts" do
field :title, :string
field :image, :string # will store as URL, will reference external host like S3
field :created_on, :datetime
field :content, :text
timestamps()
end
我想做以下事情:
:title
字段为文本输入:image
created_on
:content
创建Quill wysiwyg(基本上放在一个定位:content
文字字段的脚本中)理想情况下,我想做这样的事情:
defmodule MyBlog.ExAdmin.Post do
use ExAdmin.Register
register_resource MyBlog.Post do
end
form post do
inputs do
input post, :title, type: :string
input post, :image, type: :file
input post, :created_on, type: :datetime
input post, :content, type: :text
end
end
# Add a javascript hook that fires here to target the :content input
end
:title
,:image
和:created_on
字段都显示文字输入...我注意到的唯一改变文字字段的类型是type: :password
。有没有办法从inputs do
列表中动态删除这些类型,或者我是否必须创建自定义模板并引用它?
答案 0 :(得分:1)
首先,您通常不需要指定字段的类型。一旦text
字段出现异常,因为文本和字符串字段都在模式元数据中键入为字符串。
这应该适用于您在表单上的javascript:
form post do
inputs do
input post, :title, type: :string
input post, :image, type: :file
input post, :created_on, type: :datetime
input post, :content, type: :text
end
javascript do
form_javascript()
end
end
def form_javascript, do: """
$(document).ready(function() {
// ...
});
"""
您真的不需要使用form_javascript
功能。你可以只是嵌入就可以了
javascript do
"""
$(document).ready(function() {
// ...
});
"""
end
但是,我喜欢将javascript分开,特别是如果它相当长。