次のスニペットは、Cats のリストを正常に表示しますが、ドライバーをフラッシュすると、Cat オブジェクトの値はすべて null になります。
猫の家の名前は、期待どおりに編集できます。
HasDataEditor<CatProxy> residentsEditor= HasDataEditor.of(cellTable)
CatHouse{
String name;
List<Cat> residents;
}
Cat{
String name;
String favoriteColor;
}
これが私がリクエストを作成する方法です。(MobileWebApp サンプル プロジェクトから適応)
// Flush the changes into the editable CatHouse.
final CatHouseRequest context = (CatHouseRequest) clientFactory.getCatHouseEditView().getEditorDriver().flush();
/*
* Create a persist request the first time we try to save this task. If
* a request already exists, reuse it.
*/
if (taskPersistRequest == null) {
taskPersistRequest = context.updateCatHouse(editTask).with(
clientFactory.getCatHouseEditView().getEditorDriver().getPaths());
}
// Fire the request.
taskPersistRequest.fire(new Receiver<ActionProxy>() {
@Override public void onConstraintViolation(final Set<ConstraintViolation<?>> violations) {
...
}
@Override public void onSuccess(final CatHouseProxy response) {
...
}
});
taskPersistRequest 変数が起動される直前に調べました。
taskPersistRequest.propertyRefs = [catHouse]
taskPersistRequest.requestContext には、CatHouse と Cats の正しい値があります。
taskPersistRequest.requestData.parameters には、CatHouse の値が 1 つだけあり、Cats に関連するデータはありません。(これが問題のようです)
コンテキスト内の editProxies 変数には、CatHouse と Cat の正しい値が含まれています。