0

appceleratorチタンdevelopperここ:)?私のアプリのモバイルでは、すべてのユーザーオブジェクト(名前、写真など)を含むグローバル変数「Alloy.Globals.user」がログイン時に作成され、古典的なログイン/ログアウトページがあります。 Ti.app.properties)。 アプリからPERSONNEログアウト、私は実際に私がやった、すべてのグローバル変数とプロパティを破壊したい:チタンappceleratorログアウト時にすべてのグローバル変数をクリア

$.logout.addEventListener("click",function(e){ 
    Alloy.Globals.user = {}; 
    Alloy.Globals.user = null; 
    Ti.app.properties.removeProperty("property_name") 
}) 

しかし、別のユーザーが同じデバイス上でログインしている場合、時には以前のユーザー情報はまだ新しいユーザーとして表示しましたプロフィール。

どうすればよいですか?

ありがとうございます。

答えて

2

まず、グローバルには何も保存しないでください。それは可能ですが、悪い習慣です。 libを使用して、そこに情報を格納することができます。

しかし、それは、グローバル変数をリセットすると、そのトリックを行う必要があります。しかし、あなたのaddEventListenerは何もしません。それは何をすべきか?

addEventListenerには2つのプロパティが必要です。最初のものは、聞くべきイベントで、もう1つは、特定のイベントが発生したときに呼び出す関数です。 $.logoutがボタンであると仮定すると、$.logout.addEventListener('click',function(){});

また、ユーザー情報をたとえばウィンドウに表示した場合は、そのウィンドウを削除してメモリから消去する必要があります。情報自体を削除すると、表示された情報は削除されません。基本的にはレンダリング時に持っていたもののレンダリングです。したがって、ユーザーにログアウトさせる場合は、情報を表示するすべてのUI要素を削除し、すべてのデータプロパティを削除します。それはトリックを行う必要があります。

libの使い方は?

libは、appの中のフォルダです。持っていない場合は作成してください。そのフォルダでは、「やる」ファイルを作成できます。 libファイル内の変数は、グローバル変数のようにセッション中に格納されます。のみ、それはグローバル名前空間上にありません。

libファイルはcommonjsです。 .js拡張子を付けずに、require('myLibFile')を使用してlibファイルを含めることができます。結果をGlobalに保存しないでください。必要に応じて、変数がそこに存在する必要があれば、それを必要とします。

+0

申し訳ありませんが、イベントリスナーのクリックを忘れました。はい、私はこのイベントをクリックしています(私は投稿を変更します)とにかく私の考えを助けてくれたあなたの応答に感謝します。 lib "とそこに情報を保存しますか?ありがとうございます – user44321

+0

が追加されました!あなたがわからない場合にコモンズがどのように機能するのかGoogle); –

+0

こんにちは、助けてくれてありがとう、私はそれをチェックします – user44321