Tôi mới sử dụng Rails và có một vấn đề khá đơn giản với việc gọi các hàm javascript từ bên trong một khung nhìn. Trong Rails 2, tôi sẽ làm ...Gọi hàm javascript từ dạng xem trong Rails 3
= javascript_tag "name(arguments)"
trong đó chức năng javascript "name" được đặt trong tệp application.js của tôi. Tuy nhiên, điều này dường như không hoạt động trong Rails 3? Hay tôi đang thiếu một cái gì đó? Tôi đã tìm kiếm Google một thời gian mà không cần tìm câu trả lời.
UPDATE:
OK, vì vậy tôi nhìn vào nguồn gốc của hai cách khác nhau (bằng cách sử dụng javascript_tag và Haml javascript lọc) như đề xuất. Và điều này là rất lạ vì nguồn html dường như giống hệt nhau? Ngoài sự khác biệt về dấu nháy kép và đơn trong việc khai báo kiểu tập lệnh.
FIRST: sử dụng javascript_tag mà không hoạt động
= javascript_tag "number_interval(#{fact.current_value}, #{fact.growth_per_second}, #{fact.decimal_number}, '#{dom_id(fact, "number")}'"
Nguồn ...
<div id='number_number_interval_727'>loading</div>
<script type="text/javascript">
//<![CDATA[
number_interval(6952596670.36814, 2.33002440293917, 0, 'number_number_interval_727'
//]]>
</script>
THỨ HAI: sử dụng Haml lọc javascript và nó hoạt động
:javascript
number_interval(#{fact.current_value}, #{fact.growth_per_second}, #{fact.decimal_number}, '#{dom_id(fact, "number")}')
Nguồn ...
<div id='number_number_interval_727'>loading</div>
<script type='text/javascript'>
//<![CDATA[
number_interval(6952596917.02179, 2.33002440293917, 0, 'number_number_interval_727')
//]]>
</script>
Vâng, tôi đoán tôi sẽ chỉ gắn bó với bộ lọc Haml!
Wow ... không thể tin rằng tôi đã bỏ lỡ điều đó :) – kbjerring