photo credit: William Hook
TableView でリストを作って表示し、どれかがクリックされたら別のウィンドウを開いて何か別の処理をしたい、というようなケースでは、Table の何行目がクリックされたのか、とか、呼び出し元のファイルのほうで作っていた アレイを参照したい、などという場合がある。
呼び出し元のファイルの一部
// tableview のイベントリスナ
tableview.addEventListner (‘click’, function(e)
{
var newwin = Ti.UI.createWindow({
url: ‘ somethingtodo.js’, // 何か処理を行う別ファイル
newwin.mye = e, // イベントリスナのイベントそのものを渡す
newwin.data = data; // data はこのファイルの中で var data = [] と定義され、何かデータが入っている
Ti.UI.currentTab.open( newwin, {animated:true});
}
呼び出されたほうのファイル
var win = Ti.UI.currentWindow;
var myindex = win.mye.index; // 呼び出し元のイベントを使って、テーブルの何行目がクリックされたか知る
var data =win.data; // 呼び出し元のアレイ data を、自分のローカルアレイ data にいれる
まあ、データの受け渡しを行うことで、ファイルが完全に独立した記述にはならないわけだけど、ファイルを分けるメリットのほうが大きいケースもあるだろう。ファイルは分けたいけど、ひとつの記述(コンテクスト)にしたいばあいは Ti.include を用いるべきだろう。
Ti.include(‘a.js’);