Knockout计算不使用可观察数组进行更新

时间:2014-10-14 19:52:21

标签: knockout.js computed-observable

我有以下ViewModel:

function vm(model) {

    var self = this;

    var Create = function (data) {
        var order = ko.utils.extend(data, {});
        order.Price = ko.observable(data.Price);
        return order;
    }

    self.orders = ko.mapping.fromJS(model, {
        create: function (options) {
            return Create(options.data);
        }
    });

    self.FirstPrice = ko.pureComputed(function () {
        return parseFloat(self.orders()[0].Price());
    });
}

当页面加载时," FirstPrice"是正常更新,但在更改第一行"订单"之后的价格数组," FirstPrice"仍然是页面加载后的第一个值。

缺少什么?

*我删除了一些代码行来简化示例

由于

2 个答案:

答案 0 :(得分:0)

请参阅documentation for observableArray。特别是,本节:

  

关键点:observableArray跟踪数组中的哪些对象,   这些对象的状态

答案 1 :(得分:0)

我发现了这个问题。问题是我在绑定输入中使用输入掩码。

这有一个工作: https://github.com/RobinHerbots/jquery.inputmask/wiki/HOWTO:-Integration-with-Knockoutjs

很抱歉没有将HTML放在我在问题中使用observable的地方,这可以帮助你帮助我;)

再次感谢