Итак, я с помощью таймера, который я просил о в этом вопросе, как отсчитывать: How to stop timer.setinterval with a tap event or leaving page in nativescriptNativescript getViewById не обновляется для подсчета вниз
Счетчик работает, все это время я использую console.log проверить если он работает и да, но я хочу, чтобы он отображался в xml для пользователя этого приложения. Но счет не обновляется в xml.
Вот код для просмотра:
<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>
И JS файл за:
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;
Значение времени получает мнение, но это не обновляется, имеет значение отсчитывает. Я console.log (время), чтобы убедиться, что он все еще считается.
, чтобы иметь возможность обновить 'свойства текста label' вы должны использовать' Binding' данных и для связывания свойства text метки с идентификатором 'id =" timeCount ". Подробнее об этом вы можете найти в документации здесь - http://docs.nativescript.org/core-concepts/data-binding#binding-in-xml, где вы также найдете пример, как это сделать. –