knockout.js.com购物车编辑器示例 - 添加总税

时间:2014-06-14 18:28:42

标签: javascript knockout.js

我找到了来自knockoutjs.com的购物车编辑器示例,并想知道如何添加其他信息,例如" tax"和外部sampleproductcategories.js的相应值,并计算"总税收"在表格上? 这是jsfiddle:

http://jsfiddle.net/rniemeyer/adNuR/

function formatCurrency(value) {
return "$" + value.toFixed(2);

谢谢:)

1 个答案:

答案 0 :(得分:0)

在html中首先添加每行税:

<td class='tax'>
    <span data-bind='visible: product, text: formatCurrency(tax())' > </span>
</td>

然后添加总税:

<p class='totalTax'>
    Total value: <span data-bind='text: formatCurrency(totalTax())'> </span>
</p>

在CartLine中添加:

self.tax = ko.computed(function() {
    var taxRate = 0.1;
    return self.subtotal() * taxRate;
});

这将为每一行增加税收。它目前设定为10%。

在购物车中添加:

self.totalTax = ko.computed(function() {
    var total = 0;
    $.each(self.lines(), function() { total += this.tax() })
    return total;
});

这只会累计所有行的税。

如果每种产品都有自己的固定税额,例如:

{
    "name": "1948 Porsche 356-A Roadster",
    "price": 53.9,
    "tax": 5.39
}
CartLine中的

self.tax将是:

self.tax = ko.computed(function() {
    return self.product() ? self.product().tax * parseInt("0" + self.quantity(), 10) : 0;
});