0

我有来自服务器的下一个数据,我想通过调用 ko.mapping.fromJS(data, AcquisitionDetailsModel); 将此数据映射到我的模型。

通过查看 AcquisitionDetailsModel,在调用指定的方法后,我看到模型包含acquisitions: Object[0]. 为什么?我期待在我的模型中找到一系列收购。我做错了什么?

data: Object
   acquisitions: Array[2]
   0: Object
      acquisition: Object
         date: "2012-06-20"
         __proto__: Object
      provider: Object
         id: "1"
         name: "Some name"
         __proto__: Object
     truck: Object
         mark: "DAF"
         model: "95FX"
         __proto__: Object
     __proto__: Object
  1: Object
  length: 2

模型看起来像这样:

function TruckModel() {
    this.mark = ko.observable("");
    this.model = ko.observable("");
}

function AcquisitionModel() {
    this.date = ko.observable("acquisition_date");
}

function ProviderModel() {
    this.id = null;
    this.name = ko.observable("name");
}

var AcquisitionDetailsModel = {
    acquisitions: ko.observableArray([{
        acquisition: new AcquisitionModel(),
        provider: new ProviderModel(),
        truck: new TruckModel()
    }])
}
4

1 回答 1

0

实际上映射是正确的,但是是我以错误的方式进行调试:)

ko.mapping.fromJS(data, AcquisitionDetailsModel);如果我打电话后,AcquisitionDetailsModel.acquisitions()我可以看到我的数据。

此外,通过调用,AcquisitionDetailsModel.acquisitions()[0].truck.model()我仍然可以看到正确的数据。

愚蠢的我 :)

于 2012-12-20T14:34:08.497 回答