新手问题 如何优雅的在 rails 动态的添加表单项目

a-wing · 2018年04月28日 · 最后由 jicheng1014 回复于 2018年04月30日 · 1370 次阅读

比如我有个表单

  • name
  • item
    • 1
    • 2

点一下按钮添加在 item 里添加(减少)一项。

第一反应是用 JavaScript 不过感觉里面写一坨 JavaScript 感觉好不优雅。。。。

目前在按钮里添加一个路由连接传递一个参数,重新渲染这个页面来实现的

有没有什么优雅的写法?

accepts_nested_attributes_for 了解一下

zhaoyshine 回复

这个我用了。。。我指的是在 view 层来动态的添加表单项。在视图上的实现

a-wing 回复

cocoon

把 js 写的优雅点

你可以分开来写啊,不管是用 asset pipeline 还是 webpacker,单独的 js 文件或者 coffee 文件

要求不高 cocoon 很好,不过需要跟 webpacker 配合的话,需要用别人给他包的 npm package,作者表示过自己不懂

每次渲染开销多大的有 js 为啥不用

使用 cocoon 的时候注意下, 他是直接在页面显示的时候就把 subform 的信息加载进来了, 也意味着,如果你在 subform 上有 after_initialize 的话 它只生效一次 (随机,时间戳 都是在页面生成的时候出现,再添加 sub model 时就只是加载 js 里的信息 )

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册