2017-03-10 36 views
4

根據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;}'} %> 

但他們都沒有工作。

的Javascript:

function get_row(node){ 
    var row = "<tr></tr>" 
    $("#table_body").append(row); 
    return row 
} 

我嘗試添加trtable然後追加嵌套時隙形式向tr

+0

你能先解釋一下你正試圖解決的現實世界問題嗎?我可以從第三個選項中看到,你顯然試圖消除文件未被加載的可能性。在將代碼放入函數之前代碼是否工作? – Mirv

回答

1

目前這是不可能的,你正在嘗試做什麼。當像這樣設置data-association-insertion-method時,它只會是javascript中的一個字符串,而不是對方法的引用。

正如README documented,你必須做以下(假設你給你的鏈接一類.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函數)

+0

謝謝,我錯過了自述文件。 – DrevanTonder