2016-07-27 10 views
0

私はオブジェクト親オブジェクトと一緒に子オブジェクトをJSDataに保存する方法を教えてください。

DS.defineResource({ 
    name : 'parent', 
    relations : { 
     hasMany : { 
      child : { 
       localField : 'children', 
       foreignKey : 'parentId' 
      } 
     } 
    } 
}) 
DS.bindOne('parent', 1, $scope) 

を持っていたし、私はsaveの一環として、その変更を含めることができるか、子供parent.children[4].name='joey'の属性に変更を加えた場合:

$scope.parent.DSSave(); 

私はどのように行うことができますそれ?

答えて

0

リレーションgetterは列挙できないため、レコードがシリアル化されてアダプタに送信されるときに選択されないという点で、JSData 2.xではこれが機能しません。手動でアダプタに関係を送信するためのペイロードを構築する必要があると思います:JSDataで

const payload = {}; 
Object.keys(parentRecord).forEach((key) => payload[key] = parentRecord[key]); 
payload.childRecords = parentRecord.childRecords; 
DS.update('parent', parentRecord.id, payload) 

が、それはこのようなものになるだろうV3:

store.update('parent', parentRecord.id, { with: ['childRecords'] }) 
関連する問題