記事の JSON 文字列があり、各記事にはコメントがあります。また、記事とコメントの両方に、作成者/コメント投稿者の情報が含まれています。
Sencha はモデル キーとして「id」を使用しているため、Sencha が JSON をロードした後 (以下に示すように)、最初の記事には article.user が含まれますが、そのコメント オブジェクトには含まれません。たとえば、comment.user は存在しません。問題は、その問題をどのように回避できるかです。
私たちが試みたアプローチの 1 つは、ユーザー モデルと JSON から id フィールドを削除することです。次に、Sencha は独自の id 値を作成し、その場合、すべてのデータがロードされます。ただし、article.user オブジェクトに変更を加えた場合、同じユーザーに対応する (既知の) 他のユーザー オブジェクトにはその変更が反映されないようです。
帯域幅を節約し、前の問題を解決する別のアプローチは、同じユーザー オブジェクトの複数のコピーを (潜在的に) 持つことを回避することです。これらの場合には、オブジェクトへのポインターを使用します。この場合、アーティクルのユーザー オブジェクトが読み込まれますが、他のインスタンスにはそのオブジェクトへのポインターしか含まれません。ここでの問題は、初期オブジェクトを削除できないことです。
Sencha Touch (2) でこの問題にアプローチする標準的な方法は何でしょうか?
{"articles": [
{
"id": "14338138",
"user_id": "1",
"title": "test",
"user": {
"id":"1545"
"first_name": "Joe",
"last_name": "Kae",
"status":"1"
},
"comments": [
{
"id": "1545",
"article_id": "14338138",
"says":"This is my first comment to my own article.",
"user": {
"id":"42",
"first_name": "Joe",
"last_name": "Kae",
"status": "1"
}
},
{
"id": "1546",
"article_id": "14338138",
"says":"This is my second comment to my own article.",
"user": {
"id":"42",
"first_name": "Joe",
"last_name": "Kae",
"status": "1"
}
}
]
}
]
});