我有以下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"仍然是页面加载后的第一个值。
缺少什么?
*我删除了一些代码行来简化示例
由于
答案 0 :(得分:0)
请参阅documentation for observableArray。特别是,本节:
关键点:observableArray跟踪在数组中的哪些对象, 不这些对象的状态
答案 1 :(得分:0)
我发现了这个问题。问题是我在绑定输入中使用输入掩码。
这有一个工作: https://github.com/RobinHerbots/jquery.inputmask/wiki/HOWTO:-Integration-with-Knockoutjs
很抱歉没有将HTML放在我在问题中使用observable的地方,这可以帮助你帮助我;)
再次感谢