编程语言
首页 > 编程语言> > javascript-如何从Rails资产管道中的其他文件调用JS函数

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