2

我们有一个 JSON 文章字符串,其中每篇文章都有评论。此外,文章和评论都包含作者/评论者信息。

因为 Sencha 使用“id”作为模型键,所以 Sencha 加载 JSON 后(如下图),第一篇文章包含 article.user 但其评论对象不包含它,例如comment.user 不存在。问题是我们怎样才能避免这个问题?

我们尝试的一种方法是从用户模型和 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"
                }
            }
       ]
    }
]
});
4

1 回答 1

0

看看Sencha Docs Data.Association

于 2013-08-03T12:04:50.217 回答