更新列表中的项目

时间:2012-03-08 11:58:36

标签: javascript knockout.js

我是淘汰赛的初学者。

我做了这个页面:

http://jsfiddle.net/LhTx4/

我想只更新从sellIt函数返回的项目。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您正在错误地设置quantity属性。 quantityko observable,因此您需要使用以下语法:

        self.sellIt = function (product) {
            $.post('/Product/SellIt', { id: product.id },
            function (data) {
                var res = Enumerable.From(self.products)
                            .Where("i => i.id == " + data.Id)
                            .Select("s => s");

                res.quantity(data.Quantity); // this is the important bit!!
            });
        };

但是,我认为您可以将代码简化为:

        self.sellIt = function (product) {
            $.post('/Product/SellIt', { id: product.id },
            function (data) {
                product.quantity(data.Quantity);
            });
        };