包含更多模型的敲除映射模型



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

通过检查AcceasitionDetailsModel,在调用指定方法后,我看到该模型包含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()
    }])
}

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

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

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

愚蠢的我:)

最新更新