Nov*_*per 5 knockout-2.0 knockout.js
我似乎无法计算出这项工作的价值。任何输入将不胜感激。
我从服务器获取我的价格值。
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);Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
您的prices变量是可观察的,但其成员不是。像这样重新定义它:
self.prices = ko.observable({
ID: ko.observable(1),
Price1: ko.observable(12),
Price2: ko.observable(12)
});
Run Code Online (Sandbox Code Playgroud)
现在,这几乎18可以工作,但是如果您更改值,它会将它们转换为字符串,因此和 的总数12将是1812!我们需要将这些字符串转换为数字。
self.Total = ko.computed(function () {
var price1 = parseFloat(self.prices().Price1());
var price2 = parseFloat(self.prices().Price2());
return price1 + price2;
});
Run Code Online (Sandbox Code Playgroud)
你应该已经准备好了!
| 归档时间: |
|
| 查看次数: |
6066 次 |
| 最近记录: |