javascriptフォルダ内にcoffescriptファイルがあり、このフォルダ内にあると、railsによってすべてのビューに自動的に追加されますが、そのファイルが1つのビューでのみ使用されるようにしたいあなたがそれらを変更することができます他のビューに追加されます。特定のビューにcoffeescriptを追加する
答えて
これは比較的一般的な問題ですが、特定のページでのみそのJavaScriptをレンダリングするためにできることがいくつかあります。
モジュールパターンを使用してJavascriptのモジュールパターン
、あなたがそう(CoffeeScriptの中)のような匿名の閉鎖であなたのjavascriptのほとんどをラップすることをお勧めします:
do ->
# ... all vars and functions are in this scope only
# still maintains access to all globals
return
そのあなたのクロージャ内のコード実行したい、このようなオブジェクト内にラップすることができます:あなたがそのように実行したいコードは、オブジェクト内の関数内にラップされ
(($) ->
myObj = myFunc: (param) ->
# do stuff ...
return
$('selector').click ->
myObj.myFunc()
return
return
) jQuery
、およびイベントが発生したときにそのオブジェクトを呼び出すことができます。単一のビューで実行したいコードが、クリック、ホバー、その他のイベントなどのユーザーのやりとりにのみ依存している場合は、このようなことができます。
ボディCSSクラス
レールでは、あなたのbodyタグにコントローラとアクションクラスを追加することができます。これを行うことで、javascriptを使用してボディのcssクラスをターゲットにし、現在のビューのクラスに基づいていくつかのコードを実行するかどうかを実行できます。それは一種の次のようになります。application.html.erb
<body class = "<%= controller_name %> <%= action_name %>"
で
は、あなたが、あなたのCoffeeScriptのファイルで、あなたのarticles
コントローラのnew
アクションのいくつかのCoffeeScriptを実行したいとしましょう:
if $('body').hasClass('articles') and $('body').hasClass('new')
# do stuff for the articles#new
else
パロマ宝石
あなたはpaloma gemをチェックアウトすることができますが、私は宝石がアクティブであるとは思いませんそれはもはや維持される。
私はそれが助けてくれることを願っています!
ありがとうございますが、 require_treeを追加し、coffescriptとjavascriptのアドレスを指す "src"付きのタグを追加して、各ファイルに手動で追加する必要がある場合に備えて、プロジェクト全体で使用する必要がある場合に備えてレイアウトしますそれぞれの見解でそれは可能でしょうか? – LuisC
はい、それは技術的には可能ですが、それは推奨され、優先するレールの方法とは大きく異なります。また、サーバーは潜在的にすべてのビューで異なるアセットを提供する必要があるため、パフォーマンス上の大きな問題になります。それでもやりたい場合は、アセットパイプラインの使用を忘れて、特定のJavaScriptファイルを使用するように各ビューを手動で設定する必要があります。私は上記のオプション2を推奨します。 – Mark
- 1. ビューの特定の側にボーダーを追加する方法
- 2. 特定のエラーメッセージをmvcのビューに追加する
- 3. 特定のフォルダのパースペクティブにビューを追加する
- 4. 特定のSegueトランジションの新しいビューを追加する
- 5. 特定のファイルタイプのShow Inメニューにビューを追加する方法
- 6. 特定のサイズクラスのビューを追加する場所(プログラムによって)
- 7. 特定のビューにコントローラの機能を追加する角度で
- 8. 特定の順序でビューを追加し、その順序を格納する
- 9. レイアウトオーバーライドにビューを追加するビューID
- 10. このjQueryスクリプトをcoffeescriptに追加するには
- 11. CoffeeScriptを別のものに追加する
- 12. Mavenプラグインに特定の設定を追加するには
- 13. イベントリスナーを特定のアクティビティに追加
- 14. レイアウトに抽象ビューを追加し、プログラム的に特定のクラスを決定する
- 15. ビットマップをビューに追加してビューグループにビューを追加する方法
- 16. データフレームの特定の値を行列の特定の位置に追加する
- 17. モノビューのXIBファイル定義ビューにカスタムビューを追加する方法
- 18. 別のビューにサブビューを追加する
- 19. splitViewのrootControllerにビューを追加する
- 20. Androidのビューにチェックを追加する
- 21. UITableViewControllerのビューにサブビューを追加する
- 22. UIScrollViewの上にビューを追加する
- 23. RootViewControllerの前にビューを追加する
- 24. 特定のインデックスの文字列に追加または追加
- 25. 特定の追加スレッドに参加する
- 26. 特定のインデックスでリストに追加
- 27. IOSスタックビューaddArrangedSubview特定のインデックスに追加
- 28. Javascriptの特定のタグにスタイル(フォントサイズ)を追加するには
- 29. チタンの特定のインデックスに行を追加するには
- 30. DataTableの特定の列にArraylistを追加するには?
[Railsとページ固有のJavascript]の可能な複製(http://stackoverflow.com/questions/18724247/rails-and-page-specific-javascript) – Iceman