这可能是比Rails资产管道更普遍的JS封装问题。
在资产管道中,我有一些在任何地方都使用的通用JS文件:
应用程序/资产/ Javascript角/ pickers.js.cofeee
jQuery ->
$('.datetimepicker').datetimepicker
dateFormat: 'yy-mm-dd',
timeFormat: 'h:mmtt',
ampm: true,
hourGrid: 4,
minuteGrid: 10
$('.datepicker').datepicker
dateFormat: 'yy-mm-dd'
我还将body类定位为在控制器/操作特定页面上运行特定的JS:
应用程序/资产/ Javascript角/ employees.js.cofeee
jQuery ->
if $('.employees.edit').length
# initialize datepickers when adding new nested fields
$('form').live 'nested:fieldAdded', (e) ->
$(e.field).find('.datepicker').removeClass('hasDatepicker').datepicker
dateFormat: 'yy-mm-dd'
现在这不是重复的最麻烦的例子,但假设我想将这个日期选择代码移动到一个函数中,然后在employees.js.coffee文件中调用它,我怎么能这样做?
答案 0 :(得分:4)
您将函数提取到全局范围(jQuery
之外)。然后它在Javascript代码中的任何位置都可用,因为它成为window
对象的成员。
您应该阅读scopes in Javascript。