我是淘汰赛的新手,我仍然不知所措,我想知道如何使用两个KO变量进行简单的数学运算(加法和乘法)。
我有的时候:
self.popInc1 = ko.observable('0.3');
self.popIncrease = ko.computed(function () {
return self.popInc1() + " x " + self.population();
});
这很棒,因为它返回并打印出来:“ 0.3 x 54,556,239 ”
但是我想将两个变量相乘。我尝试过以下方面没有成功。
self.popInc1 = ko.observable('0.3');
self.popIncrease = ko.computed(function () {
return Math.floor(self.popInc1() * self.population());
});
在分钟0.3是静态的,但最终将从文本输入动态。
答案 0 :(得分:1)
这样的事情怎么样? http://jsfiddle.net/barryman9000/UNaUk/2/
<div data-bind="text: popIncrease"></div>
<input type="text" data-bind="value: userInput, valueUpdate: 'afterkeydown'" />
var ViewModel = function(){
var _self = this;
_self.userInput = ko.observable(0.3);
_self.population = ko.observable(54556239);
_self.popIncrease = ko.computed(function () {
return Math.floor(_self.userInput() * _self.population());
});
};
<强>更新强>
我看到你解决了这个问题,但我认为我还包括这个小提琴。你可以在_self.population()
observable初始化时提供零,然后在你用来从数组中获取该值的任何函数中,你可以更新observable,你的计算应该工作精细
http://jsfiddle.net/barryman9000/UNaUk/3/
_self.population = ko.observable(0);
答案 1 :(得分:1)
我修复了它,从数组中提取的原始值是字符串而不是数字。捂脸。