2012-04-01 16 views
0

これは愚かなタイプミスであるかもしれませんが、これについてはちょっとしたことがあります。私は、RailScriptアプリケーションの中でCoffeeScriptを使い始めています。HTMLからcoffeescript(バックボーン)クラスを初期化する

私はpeople.js.coffeeでクラスPeopleViewを作成:

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

はい、ブラウザのコンソールでコードをテストするのにも役立ちます。 –

答えて

1
window.PeopleView = PeopleView 

はい、これが正しい方法です。 CoffeeScriptコードは無名関数呼び出しにコンパイルされるので、すべての宣言は、ウィンドウプロパティに代入することによって外部スコープで可視にしない限り、その関数のスコープに制約されます。

これは、誤ってグローバル変数を上書きしないようにするのに役立ちます。

関連する問題