2012-03-11 4 views
0

私はTabgroupを介して制御されている複数のウィンドウアプリを使用しています。私は各ウィンドウにURLとして渡される各ウィンドウに.jsファイルを使用しています。私はまた、私は再利用可能なコードのためのルーチンを記述しているfunction.jsファイルを持っています;例えば、フォームの生成やテーブルの表示など。私はWindowAにあるフォーム要素を生成する関数を呼び出さなければなりません。 WindowAでは、必要なフォーム要素をすべて明示的に定義しました。これで、すでに作成されたフォーム要素の参照を取得する関数ルーチンには何が渡されますか?チタンappcelerator:他のWindowsで参照を渡す

別のウィンドウで作成されたTableView、WinBと私はfunctions.jsで書かれたルーチンを呼び出して行を生成しています。 WinAで変数がグローバルであるにもかかわらず、未定義のエラーが発生する

アプリケーション全体でこれらの変数の参照を取得するにはどうすればよいですか?

答えて

3

変数を渡すために、たとえそれが機能しても、Ti.Appを使用しないことを強くお勧めします。ベストプラクティスではありません。私はあなたがしたくないことは知っていますが、URLを使ってウィンドウを使わないようにコードをリファクタリングする時間を取ってください - 単一のインスタンス/ commonJSのアプローチに行きましょう。

はまた、現在のベストプラクティスコードをhttps://github.com/appcelerator-titans/Appを参照してくださいhttps://wiki.appcelerator.org/display/guides/Mobile+Best+Practiceshttps://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium

を参照してください。

リファクタリングにはしばらく時間がかかりますが、アプリははるかに安定しており、コードはよりクリーンになります。

0

まず、たとえばグローバル変数を宣言することができます。 Ti.Appオブジェクトです。 AFAIR、これはiPhoneで正しく動作しませんでした。

、これは動作しません場合は、クロージャとのトリックがあります:

myVar = {field: 'some value'}; 
Ti.App.getMyGlobalVar = function() { 
    return myVar; 
} 

はまた、私はいくつかの他の名前空間は動作しますTi.Appかどうかはわかりません。私はチタンのappceleratorを使用して以来、それは数ヶ月です。

関連する問題