javascript-如何从Rails资产管道中的其他文件调用JS函数
作者:互联网
这可能是比Rails资产管道更常见的JS封装问题.
在资产管道中,我有一些通用的JS文件,这些文件随处可见:
app / assets / javascripts / 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'
我还将目标类定位为在控制器/操作特定页面上运行特定JS:
app / assets / javascripts / 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'
现在,这不是最麻烦的重复示例,但是假设我想将此日期选择器代码移至一个函数中,然后在employee.js.coffee文件中调用它,该怎么办?
解决方法:
您将函数提取到全局范围内(在jQuery之外).然后,它成为窗口对象的成员时,就可以在Javascript代码中的任何位置使用.
您应该阅读大约scopes in Javascript.
标签:asset-pipeline,encapsulation,ruby-on-rails-3-1,javascript,ruby-on-rails 来源: https://codeday.me/bug/20191102/1988607.html