2016-05-25 12 views
0

私は現在の位置を取得し、その情報で変数を作成するいくつかのコードを以下に示します。私は関数の外でその変数を使用したいと思いますが、これまでに試みたことはすべて失敗しました。以下のアラートは機能内にあれば機能しますが、外に置くとすぐに空白になります。私もalloy.jsでグローバル変数を作成しようとしましたが、どちらもうまくいかないようです。私は、これは非常に簡単です知っているが、いくつかのより多くのアイデアが必要:)Appcelerator/Titanium - 関数内から変数を呼び出す

Titanium.Geolocation.getCurrentPosition(function(e) { 
if (e.error) { 
    alert('Error: ' + e.error); 
} else { 

    var params = { 
     latitude: e.coords.latitude, 
    }; 

    return params; 

} 
}); 



alert(params); 

答えて

3

これはTitanumが、基本的なJavaScriptの問題とは関係ありません。 paramsはローカル変数です(getCurrentPosition内)。あなたは、このようなグローバルスコープを作成することができます

var coords; 

Titanium.Geolocation.getCurrentPosition(function(e) { 
    if (e.error) { 
     alert('Error: ' + e.error); 
    } else { 
     coords = { 
      latitude: e.coords.latitude, 
      longitude: e.coords.longitude, 
     }; 
    } 
}); 

をしかし心に留めておく:getCurrentPosition関数が終了したか、データを持っているまで、それは少しを取ることができるので、COORDSはすぐに設定されていない可能性があります。

+0

ありがとう、ありがとうございます。関数の後に 'alert(coords);を追加しても空白になってしまったので、緯度と経度も試してみた。 – Rob88991

+1

私が言ったように:getCurrentPositionは結果を生成するのに少し時間がかかる。関数の直後にアラートを入力すると、ほぼ同時に呼び出され、位置を確認して空のボックスを表示します。コールバックが行われたときに値と一緒に動作するようにコードのロジックを変更する必要があります – miga

+0

Ahhhh ...ありがとうございました。基本的な質問を申し訳ありません:) – Rob88991

関連する問題