@perenyitamas wrote:
Hello guys! I have a big problem. My user can set a time in minutes in the settings and my timer will countdown from that time. However when i load the page, the timer display shows: NaN:NaN : NaN
If i start the timer and reset it, i get the correct value, but seems like it is undefinied on pageload. However i can clearly see in the console log, that the value is there on ionviewwillenter
Can you check pls:
export class IdomeroPage {
timeInSeconds: number;time: number;
remainingTime: number;
runTimer: boolean;
hasStarted: boolean;
hasFinished: boolean;
displayTime: string;
userido:number;
constructor(public navCtrl: NavController, public navParams: NavParams,private vibration: Vibration,private storage: Storage) {
}ionViewDidEnter() {
}ionViewWillEnter(){
this.storage.get(‘idomerouserido’).then((val)=>{
if(val!=null){
this.userido=parseInt(val);
console.log(“if ág eleje”,this.userido);
} else{
console.log(“else ág”)
this.userido=10;
}});
}idomeroBeallitasok(){
this.navCtrl.push(IdomerobeallitasokPage);
}ngOnInit() {
this.initTimer();
}initTimer() {
if (!this.timeInSeconds) { this.timeInSeconds = this.userido*60; }this.time = this.timeInSeconds; this.runTimer = false; this.hasStarted = false; this.hasFinished = false; this.remainingTime = this.timeInSeconds; this.displayTime = this.getSecondsAsDigitalClock(this.remainingTime);
}
startTimer() {
this.runTimer = true;
this.hasStarted = true;
this.timerTick();
}pauseTimer() {
this.runTimer = false;
}resumeTimer() {
this.startTimer();
}timerTick() {
setTimeout(() => {if (!this.runTimer) { return; } this.remainingTime--; this.displayTime = this.getSecondsAsDigitalClock(this.remainingTime); if (this.remainingTime > 0) { this.timerTick(); } else { this.hasFinished = true; this.vibration.vibrate(1000); this.vibration.vibrate(1000); } }, 1000);
}
getSecondsAsDigitalClock(inputSeconds: number) {
var sec_num = parseInt(inputSeconds.toString(), 10);
var hours = Math.floor(sec_num / 3600);
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
var seconds = sec_num - (hours * 3600) - (minutes * 60);
var hoursString = ‘’;
var minutesString = ‘’;
var secondsString = ‘’;
hoursString = (hours < 10) ? “0” + hours : hours.toString();
minutesString = (minutes < 10) ? “0” + minutes : minutes.toString();
secondsString = (seconds < 10) ? “0” + seconds : seconds.toString();
return hoursString + ‘:’ + minutesString + ‘:’ + secondsString;
}
}
Posts: 1
Participants: 1