Это мое первое сообщение здесь, когда вы пытаетесь найти ответ Google. Если бы это было отвечено где-то раньше, если бы вы могли помочь мне направлять меня в нужное место, это было бы здорово.нокаут 2 поля, связывающие друг друга
Я пытаюсь выяснить способ сделать 2-х связывание между двумя полями.
У меня есть 2 поля на моей форме, которые выполняют расчет веса. Если вы вводите вес в фунтах в поле №1, то Нокаут рассчитает вес в килограммах в поле №2. У меня нет никаких проблем с этим один и вот мой jsfiddle для этого http://jsfiddle.net/ubiquitous_tom/tVh3g/
var weight = 180;
self.weight = ko.observable(weight.toFixed(2));
self.weightKG = ko.computed(function(){
var kg_weight = parseFloat(self.weight())/2.2;
return !isNaN(kg_weight) ? kg_weight.toFixed(2) : undefined;
});
Теперь проблема у меня есть, что, когда я пытаюсь поставить вес в килограммах на 2 поля #. Он должен рассчитать вес в фунтах в поле №1, но он этого не делает. Я понятия не имею, как заставить его работать, потому что весь код, который я пытаюсь использовать вычисляемые «чтение» и «запись» в обоих полях, дает мне бесконечную ошибку цикла, поэтому я думаю, что я просто ничего не делаю правильно.
Если кто-нибудь может мне помочь, это было бы здорово. Я уверен, что это нечто очень простое, но я совершенно новичок в Knockout, и я не совсем уверен, как заставить его работать правильно. вот jsfiddle для того, я пытаюсь работать над http://jsfiddle.net/ubiquitous_tom/VmZLZ/
var weight = 180;
self.weight = ko.observable(weight.toFixed(2));
self.weightKG = ko.computed({
read: function() {
return parseFloat(self.weight().toFixed(2));
},
write: function(newValue) {
var kg_weight = parseFloat(newValue)/2.2;
return !isNaN(kg_weight) ? kg_weight.toFixed(2) : undefined;
}
});
Спасибо так много! Это работает отлично. Я понятия не имею, почему я никогда не думал об этом. Я думаю, я просто предполагаю, что «чтение» - это просто отображение только своего рода вещей. –