У меня есть цикл, который изменяет наблюдаемую переменную Knockout, которая используется в вычисляемой переменной. У меня есть диапазон, привязанный к этой вычисляемой переменной. Когда я запускаю его, пользовательский интерфейс этого диапазона не меняется. Целочисленные значения отправляются на консоль, поэтому я знаю, что вычисляемая переменная обрабатывается.
Вот мой JS:
var PlayerViewModel = function () {
var self = this;
self.NumberOfLoops = ko.observable(0);
self.StartLoopTime = ko.observable(new Date());
self.LoopsPerMinute = ko.computed(function () {
var a = self.NumberOfLoops();
var b = new Date() - self.StartLoopTime();
var c = a / ((b) / 60000);
var d = Math.round(c);
console.log(d);
return d;
});
self.Loop = function () {
//..Stuff..
var count = self.NumberOfLoops();
count = count + 1;
self.NumberOfLoops(count);
//..More Stuff..
//Call self.Loop again
};
}
HTML:
<span data-bind="text: LoopsPerMinute">0</span>
У меня есть другие элементы DOM, привязанные к другим наблюдаемым и вычисляемым в PlayerViewModel, и они работают. Разве этот текст не должен автоматически меняться во время работы цикла. В настоящее время это не так.
Любая помощь приветствуется! Спасибо!
Loop()
. Покажите код, который на самом деле вызывает его (кстати, общее соглашение JavaScript гласит, что имена функций не должны начинаться с заглавных букв, если только они не являются конструкторами, которые необходимо вызывать с помощьюnew
). - person ebohlman   schedule 28.10.2013