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 に答える