2016-10-31 1 views
0

時間が== 0でダイアログを起動して別のページにナビゲートすると、ページがロードされたときに起動して停止するカウンタがあります。しかし、私はまた、使用がボタンをタップするとき、または彼がページをあきらめて離れるときにそれを止めたいと思う。タップ・イベントを使用してtimer.setintervalを停止する方法またはナンバースクリプトにページを残す方法

以下

タイマーを起動して、宣言型UI XMLで時が=== 0

var timeKeep = vm.time; 
var count = 0; 

countId = timer.setInterval(() => { 
    timeCountDown(); 
    count += 1; 
    if (count === timeKeep) { 
     timer.clearInterval(countId); 
     dialogs.alert({ 
      message: "Time Up!", 
      okButtonText: "OK" 
     }); 
     aemnavigation.goResults(vm.correct); 
    } 
}, 1000); */ 

答えて

1
var timeKeep = vm.time; 
var count = 0; 

var countId = timer.setInterval(() => { 
    timeCountDown(); 
    count += 1; 
    if (count === timeKeep) { 
     timer.clearInterval(countId); 
     dialogs.alert({ 
      message: "Time Up!", 
      okButtonText: "OK" 
     }); 
     aemnavigation.goResults(vm.correct); 
    } 
}, 1000); 


exports.onButtonTap = function() { 
    timer.clearInterval(countId); 
    /** Do whatever else you need to **/ 
} 

exports.onNavigatingFrom = function() { 
    timer.clearInterval(countId); 
} 

JSファイルのためにそれを終了するための私のコードです:

<Page navigatingFrom="onNavigatingFrom"> 
    <Button tap="onButtonTap" text="Click Me"/> 
</Page> 

私はまた、timer.clearInterval(countId)関数の にcountIdがまだ有効であることを確認することをお勧めします。インターバルをクリアした後は無効にしてください。あなたは奇妙なコーナーケースはありません。

+0

ありがとうございます@Nathanael。どうしたら無効にするのですか?私はtimer.clearInterval(countId)関数がそれをやっていると思っていた。 – Joel

+1

を-1に設定します。 if(count ===)ブロック内のその値をチェックしてください。 – dashman

+0

オケイ@ダッシュマン。ありがとう。ビューに表示される問題があります。私はここにそれを投稿http://stackoverflow.com/q/40372727/7096618 – Joel

関連する問題