0

parse.com がチュートリアルで提供しているこの例を拡張して、バックボーン コレクションと第 2 レベルのデータ (コメント) を操作したいと思います。現在、この例では、次のデータ構造を使用して、ユーザーの投稿のリストを取得しています。

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


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

この呼び出しを拡張して、各投稿に対応するコメントも返すようにします。つまり、ログインしているユーザーのすべての投稿とそれらの投稿へのすべてのコメント (適切にネストされたもの) を返す1 つの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のモデル間に 1 対 1、1 対多、および多対 1 の関係を提供します。

クラス

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 に答える