无法使用 cocoon 附加 table 中的字段
Unable to append fields in table with cocoon
我正在使用 cocoon 添加嵌套属性。我认为有以下代码:
<table>
<thead>
<tr>
<th>Title</th>
<th>Action</th>
</tr>
</thead>
<tbody id="emergency_personnels">
<%= f.fields_for :emergency_personnels do |emergency_personnel| %>
<%= render 'emergency_personnel_fields', f: emergency_personnel %>
<% end %>
</tbody>
</table>
<%= link_to_add_association 'Add emergency personnel', f, :emergency_personnels, data: {"association-insertion-node" => "tbody#emergency_personnels", "association-insertion-method" => "append"} %>
它应该工作正常,但新字段没有附加在 table 的 tbody 下,而是出现在 table.
之外
谁能提出解决方案。谢谢
根据 Cocoon 文档:
insertion-behaviour
默认行为:
The default insertion location is at the back of the current container.
如果要添加到自定义位置,那么我们可以通过两个数据属性来实现:
association-insertion-method
添加到哪里
association-insertion-node
相对节点添加到哪里
示例如下:
$(document).ready(function() {
$("#owner a.add_fields").
data("association-insertion-method", 'append').
data("association-insertion-node", '#parent_table');
});
注意:
如果您想将模板添加到特定位置,即:
- 不是 parent 或 link
的直系兄弟姐妹
- link 出现多次 - 例如,在一个深层嵌套的表单中
您需要将 association-insertion-node
指定为函数。例如
$(document).ready(function() {
$(".add_sub_task a").
data("association-insertion-method", 'append').
data("association-insertion-node", function(link){
return link.closest('.row').next('.row').find('.sub_tasks_form')
});
});
我正在使用 cocoon 添加嵌套属性。我认为有以下代码:
<table>
<thead>
<tr>
<th>Title</th>
<th>Action</th>
</tr>
</thead>
<tbody id="emergency_personnels">
<%= f.fields_for :emergency_personnels do |emergency_personnel| %>
<%= render 'emergency_personnel_fields', f: emergency_personnel %>
<% end %>
</tbody>
</table>
<%= link_to_add_association 'Add emergency personnel', f, :emergency_personnels, data: {"association-insertion-node" => "tbody#emergency_personnels", "association-insertion-method" => "append"} %>
它应该工作正常,但新字段没有附加在 table 的 tbody 下,而是出现在 table.
之外谁能提出解决方案。谢谢
根据 Cocoon 文档: insertion-behaviour
默认行为:
The default insertion location is at the back of the current container.
如果要添加到自定义位置,那么我们可以通过两个数据属性来实现:
association-insertion-method
添加到哪里
association-insertion-node
相对节点添加到哪里
示例如下:
$(document).ready(function() {
$("#owner a.add_fields").
data("association-insertion-method", 'append').
data("association-insertion-node", '#parent_table');
});
注意:
如果您想将模板添加到特定位置,即:
- 不是 parent 或 link 的直系兄弟姐妹
- link 出现多次 - 例如,在一个深层嵌套的表单中
您需要将 association-insertion-node
指定为函数。例如
$(document).ready(function() {
$(".add_sub_task a").
data("association-insertion-method", 'append').
data("association-insertion-node", function(link){
return link.closest('.row').next('.row').find('.sub_tasks_form')
});
});