【发布时间】:2014-05-18 20:56:03
【问题描述】:
我有一个具有可观察数组的 KnockoutJS 模型,我需要能够从 JSON 加载,并通过简单地将数据对象推送到数组来添加。我发现当我使用映射加载数据时,我无法再获得数组中项目的长度/计数,它总是等于零。我认为这是由于映射?
这里是鬼魂:
var SalesPerson = function (data) {
var self = this;
if (data != null) {
ko.mapping.fromJS(data, {Regions: regionMapping, Customers: customerMapping}, self);
} else {
self.ID = ko.observable();
self.FullName = ko.observable().extend({
required: {
message: '* Persons name needed'
}
});
//self.Regions = ko.observableArray();
self.Regions = ko.mapping.fromJS([]);
self.Customers = ko.mapping.fromJS([]);
//self.Customers = ko.observableArray(); // array of "Customers", who each have many orders
}
注意我最初是使用例如self.Regions = ko.observableArray(); 放入数组,然后在看到related post 后更改为self.Regions = ko.mapping.fromJS([]);
这里是一个完整的小提琴:fiddle example
要测试小提琴,请单击“从在线模型加载”。区域和客户的“计数”应该更新,但它没有更新,它保持为零。
【问题讨论】:
标签: knockout.js knockout-mapping-plugin