Dalam Rails 3.1, Di Mana Anda Letakkan Kod JavaScript "Halaman Khusus" Anda?
Soalan:
Dalam Rails 3.1, apabila semua JavaScript digabungkan menjadi satu fail kerana //= require_tree ., bagaimanakah anda boleh memasukkan kod JavaScript khusus halaman tanpa ia dilaksanakan pada semua halaman? Adakah mungkin untuk mengelakkan pertembungan kod dan mengelakkan penggunaan teg skrip manual?
Jawapan:
JavaScript Khusus Pengawal:
Rails menyediakan penyelesaian untuk ini melalui fail aset khusus pengawal. Contohnya, ProjectsController akan mempunyai fail aset yang sepadan di:
Sebarang kod JavaScript atau CSS unik untuk pengawal itu boleh diletakkan dalam fail ini. Kemudian, masukkannya hanya apabila diperlukan dengan:
<%= javascript_include_tag params[:controller] %> <%= stylesheet_link_tag params[:controller] %>
Ciri Balutan dalam Div:
Pendekatan alternatif ialah membalut ciri dalam teg div dengan ID atau kelas unik . Kod JavaScript boleh menyemak kehadiran elemen ini dan melaksanakan dengan sewajarnya, memastikan ia hanya berjalan pada halaman yang dimaksudkan. Ini membenarkan kod JavaScript modular yang boleh dimasukkan secara terpilih berdasarkan kandungan halaman.
Mengelakkan Pertembungan Kod:
Dengan menggunakan awalan ruang nama atau corak modul, pertembungan kod boleh dielakkan. Sebagai contoh, kod untuk halaman tertentu boleh dibungkus dalam:
(function() { var PageSpecificCode = {}; // ... })();
Menghapuskan Teg Skrip Manual:
Dengan pendekatan di atas, keperluan untuk teg skrip manual pada halaman individu dihapuskan. Kod JavaScript boleh dipusatkan dan diuruskan melalui fail manifes application.js dan fail aset khusus pengawal, menyediakan organisasi kod yang lebih bersih dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan JavaScript Khusus Halaman dalam Rails 3.1 Tanpa Teg Skrip Manual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!