我有一個coffescript文件在JavaScript文件夾內,並且在這個文件夾中,rails會自動將它添加到所有視圖中,但是我希望該文件僅用於單個視圖中,因爲如果它是添加到其他視圖你可以改變它們。將coffeescript添加到給定的視圖
0
A
回答
1
這是一個相對常見的問題,但有幾件事你可以做只在某個頁面上呈現該JavaScript。
的JavaScript模塊模式
使用模塊模式,你會想將多數在匿名關閉你的JavaScript像這樣(在CoffeeScript中):
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類
在軌,您可以控制器和動作類添加到你的身體標記。通過這樣做,你可以使用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,但我不認爲創業板是活動再維持下去。
我希望有幫助!
相關問題
- 1. 將查找添加到給定視圖
- 2. 將視圖添加到自定義ViewGroup
- 3. 將edittext添加到自定義視圖
- 4. 將editText添加到自定義視圖
- 5. 將視圖添加到TabBarcontroller
- 6. 將視圖添加到NSOutlineView
- 7. 將視圖添加到RecyclerView
- 8. 將列添加到視圖
- 9. 將多個視圖添加到視圖
- 10. 將視圖添加到滾動視圖
- 11. segue將視圖添加到視圖
- 12. 將圖像視圖添加到圖層
- 13. 將透明覆蓋圖添加到選定的圖像視圖
- 14. 將圖像添加到列表視圖
- 15. 將約束添加到地圖視圖
- 16. 如何將圖像添加到視圖
- 17. 將視圖添加到Twitter的窗口
- 18. 無法將視圖添加到Heroku的
- 19. 將視圖添加到Android中的RemoteViews
- 20. 將MPMoviePlayerController的視圖添加到UIView
- 21. 將數據傳遞給自定義UITableViewCell並添加子視圖
- 22. 將textView作爲視圖的子視圖並將此視圖添加到視頻
- 23. 將分鐘添加到給定時間
- 24. 添加視圖到
- 25. 將視圖視圖添加到窗口子視圖
- 26. iOS - 將子視圖添加到子視圖控制器視圖
- 27. 目標C:將加載視圖添加到視圖控制器
- 28. 將圖像添加到自定義列表視圖
- 29. 將自定義圖像添加到日曆視圖
- 30. 將子視圖添加到iOS的滾動視圖的頂部
[Rails and Page Specific Javascript]的可能重複(http://stackoverflow.com/questions/18724247/rails-and-page-specific-javascript) – Iceman