具有功能的 Cocoon 数据关联插入节点
Cocoon data-association-insertion-node with a function
根据 https://github.com/nathanvda/cocoon#link_to_add_association 你应该可以传递一个函数给 data-association-insertion-node
我试过这个:
<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'get_row()'} %>
还有这个:
<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'get_row'} %>
还有这个(变得绝望):
<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'function get_row(node){var row = "<tr></tr>";$("#table_body").append(row);return row;}'} %>
但其中 none 有效。
Javascript:
function get_row(node){
var row = "<tr></tr>"
$("#table_body").append(row);
return row
}
我正在尝试将 tr
添加到 table
,然后将嵌套的时间段形式附加到 tr
。
目前您无法执行此操作。当像这样设置 data-association-insertion-method
时,它将只是 javascript 中的一个字符串,而不是对方法的引用。
作为 README 中的 documented,您必须执行以下操作(假设您给链接设置了 class .add-timeslot
):
$(document).on('turbolinks:load', function() {
$(".add-timeslot a").
data("association-insertion-method", 'append').
data("association-insertion-node", function(link){
return link.closest('.row').next('.row').find('.sub_tasks_form')
});
});
(该示例几乎是从文档中逐字复制的,仅用于演示目的——您必须填写 get_row
函数)
根据 https://github.com/nathanvda/cocoon#link_to_add_association 你应该可以传递一个函数给 data-association-insertion-node
我试过这个:
<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'get_row()'} %>
还有这个:
<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'get_row'} %>
还有这个(变得绝望):
<%= link_to_add_association 'Add Timeslot', f, :timeslots, :data => {'association-insertion-node' => 'function get_row(node){var row = "<tr></tr>";$("#table_body").append(row);return row;}'} %>
但其中 none 有效。
Javascript:
function get_row(node){
var row = "<tr></tr>"
$("#table_body").append(row);
return row
}
我正在尝试将 tr
添加到 table
,然后将嵌套的时间段形式附加到 tr
。
目前您无法执行此操作。当像这样设置 data-association-insertion-method
时,它将只是 javascript 中的一个字符串,而不是对方法的引用。
作为 README 中的 documented,您必须执行以下操作(假设您给链接设置了 class .add-timeslot
):
$(document).on('turbolinks:load', function() {
$(".add-timeslot a").
data("association-insertion-method", 'append').
data("association-insertion-node", function(link){
return link.closest('.row').next('.row').find('.sub_tasks_form')
});
});
(该示例几乎是从文档中逐字复制的,仅用于演示目的——您必须填写 get_row
函数)