2012-04-01 39 views
0

這可能會變成一個愚蠢的錯字,但只是有一點關於這個。我剛開始使用Rail應用程序中的CoffeeScript。從HTML中初始化coffeescript(主幹)類

我創建了一個類PeopleView在people.js.coffee:

class PeopleView extends Backbone.View 
.... 

我試圖從HTML文件初始化:

<script language="text/javascript"> 
    $(document).ready(function() { 
     var view = new PeopleView(); 
    }); 
</script> 

我得到的是PeopleView沒有定義的錯誤。我可以在編譯過的application.js中看到PeopleView已經定義好了。是否需要做一些事情來初始化coffeescript文件之外的類?

- 編輯

我只注意到在people.js.coffee文件的底部輸入

window.PeopleView = PeopleView 

將使它發揮作用。這是一個好方法嗎?

+0

是的,它也有助於在瀏覽器控制檯中測試您的代碼。 – 2012-04-01 20:00:04

回答

1
window.PeopleView = PeopleView 

是的,這是正確的方法。 CoffeeScript代碼將被編譯爲匿名函數調用,因此所有聲明都將被限制爲該函數的作用域,除非您通過分配給窗口屬性使其在外部作用域中可見。

這有助於防止意外覆蓋全局變量。