2012-02-23 29 views
5

最初の質問には答えが見つかりませんでした。私の最初の質問をするのに十分な理由があるかもしれません。回答がbackbone.jsの範囲外にある場合は謝罪してください。backbone.jsでのグローバル変数の使用

backbone.jsアプリでは、さまざまな関数でいくつかの変数にアクセスする必要があるため、いくつかのグローバル変数の設定を使用する必要があります。

私の現在の解決策が受け入れられるか良いかと思っています。私のIDE(IDEA)はそうではないと考えているようだ:

var MyModel = Backbone.Model.extend({ 

initialize:function(){ 
    var myGlobalVar, myOtherGlobalVar;//marked as unused local variable 
}, 

myFunction:function() {   
     myGlobalVar = value;//marked as implicitly declared 
     model.set({"mrJson": {"email": myGlobalVar}}); 
     model.save(); 
    }); 
    } 
}, 

myOtherFunction:function() {   
     myOtherGlobalVar = otherValue;//marked as implicitly declared 
     model.set({"mrJson": {"email": myGlobalVar, "other": myOtherGlobalVar}}); 
     model.save(); 
    }); 
    } 
} 
} 

私は暗黙的に宣言したグローバルを宣言しようとしたが、それはパーソナルプラグイン関数からアクセスされていない彼らになりました。

backbone.jsでこれらのグローバル変数を処理する適切な方法はありますか?

答えて

14

現在の変数を宣言している方法は、彼らがはその後mymodelという範囲をオブジェクトではなく、範囲を初期化する機能です。変数をモデル変数(すべてのオブジェクト関数にアクセス可能)として定義するには、次のようにします。

var MyModel = Backbone.Model.extend({ 

myGlobalVar: null, 
myOtherGlobalVar: null, 

initialize:function(){ 
    console.log(this.myGlobalVar) 
}, 
... 
+0

ありがとう!それは私が探していたシンタックスです。 – Sephie

+0

私は同様の状況に直面していますが、上記の解決策はOKであると思われますが、私の問題は、バックボーンの仕組みではなくjsパーサの仕組みを理解することにより多くのことをしています。jsbin NON-FUNCTIONALコード例それが機能するようにコードがコンパイルされます)。ここにリンクhttp://jsbin.com/tufeh/1/があります。dropfromが呼び出されると、selestrtは値を取得します(これはunixタイムスタンプです)。changefromが呼び出されると(changeイベント)selestrtは未定義です。このような状況で私は何ができますか?私はあなたが写真を持っていることを願っ... –

関連する問題