Nếu tôi có tên phương thức trong một chuỗi, trong Ruby tôi có thể sử dụng send
để tự động gửi các phương thức, ví dụ:Có tương đương trong Javascript/Coffeescript/jQuery với gửi của Ruby không?
method_name = "delete"
send method_name
tôi có thể tận dụng lợi thế của suy quá:
method_name = "add"
send "#{method_name}_task", args
Tôi đã 2 chức năng quy định tại javascript, một để xóa, một để cập nhật cái gì đó. Mỗi nút được thêm động và vào lúc này, chỉ cần phương thức xóa bị ràng buộc qua button.on "click"
, ví dụ:
b.on "click", (event) ->
event.preventDefault() # stop submission via postback
this_button = $(this)
task_id = this_button.data("task-id")
delete_task(task_id, this_button)
false
Tôi muốn để có thể làm điều này:
method_name = "delete"
b.on "click", (event) ->
event.preventDefault() # stop submission via postback
this_button = $(this)
task_id = this_button.data("task-id")
send "#{method_name}_task", task_id, this_button
false
Sự khác biệt duy nhất giữa các ràng buộc của 2 chức năng là một trong những dòng này. Nếu có một cách rõ ràng, nó sẽ rất hữu ích để cắt giảm sự lặp lại. Tôi đã không tìm thấy bất cứ điều gì trong tìm kiếm của tôi, vì vậy nếu có ai có thể giúp nó sẽ được nhiều đánh giá cao.
Bạn gửi gì vào mã coffeescript? trong các ví dụ ruby bạn có 'obj'. – Esailija
@Esailija Xin lỗi nếu điều đó không rõ ràng, tôi không sử dụng một đối tượng trong javascript. Ruby tự động sử dụng tự nó, vì vậy không có đối tượng cần thiết trong ví dụ này, tôi chỉ nghĩ rằng nó sẽ rõ ràng hơn. Tôi sẽ thay đổi nó, cảm ơn. – iain
"Ruby tự động sử dụng tự _if không nhận được rõ ràng given_" Tôi nên đã viết ở trên. – iain