2012-04-21 28 views
0

我是一個js noob在Rails應用程序上工作。我在我的一個javascript文件中定義了一個有用的JS函數,我希望它可以在其他文件中調用。但是,事實並非如此。這裏是我的情況簡化的例子...請注意,我用的CoffeeScript(但據我所知應該是沒有區別的):如何使JS對象跨多個文件可用

#file: app/assets/javascripts/foos.js.coffee 
testFoo: -> 
    alert 'Foo' 

#file: app/assets/javascripts/bars.js.coffee 
jQuery -> 
    testFoo() 

這並不工作,並在控制檯中我得到:testFoo is not defined

這兩個文件都包含在頁面中,如果我將警報或控制檯日誌放入任一頁面,頁面會按照預期進行響應。我覺得我必須在這裏忽略一些殘酷的東西......它是什麼?

+0

你的意思是你已經在你的HTML具有兩個腳本元素?如果是這樣檢查排序和拼寫等。 – 2012-04-21 04:39:00

+1

[CoffeeScript&Global Variables]的可能重複(http://stackoverflow.com/questions/4214731/coffeescript-global-variables) – 2012-04-21 04:40:17

+1

@RayToal:CoffeeScript將所有內容封裝在'( function(){...})()'包裝來防止污染全局名稱空間。 – 2012-04-21 04:42:42

回答

2

總之試試這個:當你說「既包括在頁上的」

root = exports ? this 
root.foo = -> alert 'Foo' 
+0

是的。作品,謝謝。 – Andrew 2012-04-21 05:13:22