Ich kann das nicht herausfinden. Ich habe eine OnInit-Funktion, die ein Ergebnis vom Server erhält. mit diesem Ergebnis erwarte ich eine Funktion auszuführen, die angular2 „this.secondsToTime ist keine Funktion“Zugriff auf die Funktion innerhalb der Komponente nicht möglich - Angular2
Hier ist mein Code beschwert:
ngOnInit() {
this.user = this._authService.user;
this._globalService.getPrintTimer().subscribe(
suc => {
this.secondsToTime(suc.response);
},
err => {
console.log("Could not load timer");
}
);
}
secondsToTime(time) {
console.log("secondsToTime");
setTimeout(function() {
time--;
time = Math.round(time);
var hours = Math.floor(time/(60 * 60));
var divisor_for_minutes = time % (60 * 60);
var minutes = Math.floor(divisor_for_minutes/60);
var divisor_for_seconds = divisor_for_minutes % 60;
var seconds = Math.ceil(divisor_for_seconds);
this.countDown = minutes + ":" + seconds;
}, 1000);
}
Dies könnte sich auf einen internen aufrufenden Funktionsbereich beziehen. Versuchen Sie hier, eine Referenz außerhalb als var zu speichern. That = this vor Aufruf und dann this.secondsToTime (suc.response); –
Fügen Sie eine 'console.log (this);' in Ihrem Erfolg Callback und lassen Sie uns wissen, was Sie bekommen. – Chris