1

我有以下视图模型:

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”正常更新,但更改“orders”数组第一行的Price后,“FirstPrice”仍然是页面加载后的第一个值。

什么不见​​了?

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

谢谢

4

2 回答 2

0

请参阅observableArray 的文档。特别是本节:

关键点:一个 observableArray 跟踪数组 有哪些对象,而不是那些对象的状态

于 2014-10-14T20:32:54.240 回答
0

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

有一个解决方法: https ://github.com/RobinHerbots/jquery.inputmask/wiki/HOWTO:-Integration-with-Knockoutjs

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

再次感谢

于 2014-10-16T01:37:45.280 回答