gpt4 book ai didi

knockout.js - 为什么我的 Knockoutjs 计算 observable 不起作用?

转载 作者:行者123 更新时间:2023-12-04 23:56:39 24 4
gpt4 key购买 nike

我似乎无法计算出这项工作的值(value)。任何输入将不胜感激。

我从服务器获取我的价格值。

 var pModel = function () {
var self = this;
self.prices = ko.observable({ "ID": 1,"Price1": 12,"Price2": 12});

self.Total = ko.computed(function () {
var total = 0;
total = self.prices().Price1 + self.prices().Price2;
return total;
});
};
var VModel = new pModel();
ko.applyBindings(VModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.1.0/knockout-min.js"></script>
<form action='/someServerSideHandler'>
<table>
<thead>
<tr>Prices</tr>
</thead>
<tbody id="calc">
<tr>
<td>Price 1</td>
<td>
<input data-bind='value: prices().Price1' />
</td>
</tr>
<tr>
<td>price 2</td>
<td>
<input data-bind='value: prices().Price2' />
</td>
</tr>
<td>TOTAL</td>
<td> <span data-bind="text: $root.Total"></span>
</td>
</tbody>
</table>
</form>

最佳答案

您的 prices变量是可观察的,但它的成员不是。像这样重新定义它:

 self.prices = ko.observable({
ID: ko.observable(1),
Price1: ko.observable(12),
Price2: ko.observable(12)
});

现在,这几乎可以工作了,但是如果您更改这些值,它会将它们转换为字符串,因此总共 1812将是 1812 !我们需要将这些字符串转换为数字。
 self.Total = ko.computed(function () {
var price1 = parseFloat(self.prices().Price1());
var price2 = parseFloat(self.prices().Price2());
return price1 + price2;
});

你应该准备好了!

关于knockout.js - 为什么我的 Knockoutjs 计算 observable 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com