Also, ich den Timer bin mit, dass ich in dieser Frage gefragt, wie ein Countdown: How to stop timer.setinterval with a tap event or leaving page in nativescriptNativescript getViewById nicht für Zählung Aktualisierung
Der Zähler funktioniert, das alles, während ich console.log verwendet haben zu prüfen, wenn es funktioniert und ja es tut, aber ich möchte es in der XML für den Benutzer dieser App zu sehen, um zu sehen. Aber die Zählung wird nicht in der XML aktualisiert.
Hier ist der Code für die Ansicht:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded" navigatedTo="navigatedTo" navigatingFrom="onNavigatingFrom" actionBarHidden="true">
<DockLayout orientation="horizontal" horizontalAlignment="center" backgroundColor="black" color="white">
<Label text="Time remaining: " dock="left" margin="5" />
<Label id="timeCount" text="" loaded="pageLoaded"></Label>
</DockLayout>
</Page>
Und die js Datei hinter:
var time;
var timeKeep = vm.time;
var count = 0;
function timeCountDown() {
time = vm.time--; //this is the value that i need
console.log("i is " + time);
}
countId = timer.setInterval(() => {
timeCountDown();
count += 1;
if (count === timeKeep) {
timer.clearInterval(countId);
dialogs.alert({
title: "Time Up!",
message: "You did not finish the test in time.",
okButtonText: "OK"
});
aemnavigation.goResults(vm.correct);
}
}, 1000);
//the two lines below is how i get it to show on the xml
TimeCountScore = page.getViewById("timeCount");
TimeCountScore.text = time;
Der Wert der Zeit zu der Ansicht kommt, aber es ist nicht aktualisiert hat den Wert herunterzählt. Ich console.log (Zeit) um sicherzustellen, dass es immer noch zählt.
Lage sein, die 'Label' Textes Eigenschaft zu aktualisieren, sollten Sie' Daten Binding' verwenden und um die Texteigenschaft des Labels mit 'id =" timeCount "' zu binden. Mehr dazu finden Sie in der Dokumentation hier - http://docs.nativescript.org/core-concepts/data-binding#binding-in-xml, wo Sie auch ein Beispiel dafür finden. –