3

這可能比Rails資產管道更通用的JS封裝問題。如何從Rails資產管道中的不同文件調用JS函數

在資產管道我有到處使用一些通用的JS文件:

應用程序/資產/ Java腳本/ 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' 

我也是目標定身類運行

應用程序/資產/ Java腳本/ employees.js.cofeee

:對控制器/動作特定頁面的特定的JS
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文件中調用它,我怎麼能這樣做呢?

回答

4

將函數提取到全局範圍內(在jQuery之外)。然後它可以在Javascript代碼中的任何地方使用,因爲它成爲window對象的成員。

您應該閱讀約scopes in Javascript

+0

我通常避免把所有內容放在'window'中。命名空間保持代碼組織。 – apneadiving