0

我想扩展 parse.com 在其教程中提供的这个示例,以使用主干集合和第二级数据(评论)。现在,示例正在检索用户的帖子列表,具有以下数据结构:

USER
--------------------------------------
| User_ID |  Username | ......
--------------------------------------
| 1       |  John     | ........
| 2       |  Jane     | ........


POST 
--------------------------------------
| POST_ID  |  User_ID | Title    | .....
--------------------------------------
| 20       |  1       | abcdefg  | .....
| 21       |  1       | svsvdsv  | .....

我想扩展这个调用,也为每个帖子返回相应的评论。这意味着将有一个api 调用来解析,它会为登录用户返回所有帖子和对这些帖子(正确嵌套)的所有评论。下面是一个评论数据结构的例子:

COMMENT
-----------------------------------------------------------------------
| COMMENT_ID  |  POST_ID  |  Comment_Text        | Title    | .....
-----------------------------------------------------------------------
| 30          |  21       |  awesome post woohoo | abcdefg  | .....
| 31          |  21       |  terrible post....   | svsvdsv  | .....

任何帮助将不胜感激!

4

1 回答 1

0

Backbone.js 不支持嵌套模型,因此您可以将 Backbone-relational.js 用于嵌套模型,

Backbone-relational.js 为 Backbone Backbone Relation的模型之间提供了一对一、一对多和多对一的 关系

班级

User = Backbone.Relational.Model({
    defaults : {
        id : '',
        name : '',
        posts : [], //collection
    },
    relation : [{
        type : 'HasMany',
        key : 'posts',
        relatedModel : 'com.dw.attendance.model.Post',
        reverseRelation : {
            key : 'user'
        }
    }]
});

Post = Backbone.Relational.Model({
    defaults : {
        id : '',
        user : '', //model
        comments : '', //collection
        title : '',
    },
    relation : [{
        type : 'HasOne',
        key : 'user',
        relatedModel : 'com.dw.attendance.model.User',
        reverseRelation : {
            key : 'posts'
        }
    },{
        type : 'HasMany',
        key : 'comments',
        relatedModel : 'com.dw.attendance.model.Comment',
        reverseRelation : {
            key : 'post'
        }
    }]
});


Comment = Backbone.Relational.Model({
    defaults : {
        id : '',
        post : '',//model
        text : '',
        title : ''
    },
    relation : [{
        type : 'HasOne',
        key : 'post',
        relatedModel : 'com.dw.attendance.model.Post',
        reverseRelation : {
            key : 'comments'
        }
    }]
});

你的数据是这样的,对于用户:{id : 1, name : 'john', posts : [1,2,3]};

然后您可以获得任何用户帖子的评论,

user.get('posts').get('post_ID').get('comments');
于 2013-03-06T07:28:23.457 回答