1

私は学んBackbone.jsでおり、を使用してプロジェクトの改良を開発しようとしていBackbong.jsます。プロジェクトにはすでに API があり、さまざまなプラットフォーム、iphone アプリ、andorid アプリ、および Web で使用されていたためです。

私の問題は、以下のような API リターンがあることです。

{
     success: true,
     response: {
         posts: [{...post data...}, {...post data...}, {...post data...}],
         users: [{...user data...}, {...user data...}],
         categories: [{...category data...}, {...category data...}]
     }
}

バックボーンのドキュメントとして

Collection多くのモデルを含めることができます

通常、デザインは

// Post Model
var PostModel = Backbone.Model.extend({
    ...
})

// User Model
var UserModel = Backbone.Model.extend({
    ...
})

// Category Model
var UserModel = Backbone.Model.extend({
    ...
})

var PostListCollection = Backbone.Collection.extend({
    model: PostModel 
})

それで...どうすればこれら3種類の「オブジェクト」をコレクションに入れることができますか? ありがとう

4

2 に答える 2

2

コレクションを含むモデルを持つことができます

var ResultModel = Backbone.Model.extend({
    default: {
       Users: [],
       Posts: [],
       Categories: []
    }
});

次に、通常の方法でコレクションを実装します。

それで、子コレクションを取得しようとすると...

var result = new ResultModel("your result JSON object");
var users = new UserCollection(result.get("Users"));
var posts = new PostCollection(result.get("Posts"));
var categories = new CategoryCollection(result.get("Category"));

これは私にとってはうまくいっています...私の場合

于 2013-06-26T11:47:09.053 に答える
2

単一のコレクションではないコレクションが必要な理由がわかりません。API からデータをフェッチして 3 つのコレクションに変換するきちんとした方法が必要なようです (間違っている場合は訂正してください)。

API からフェッチするモデルを作成し、カスタムparse関数を実装してその中に 3 つのコレクションを作成することができます。確かに、事前UserCollectionに , PostCollectionandを定義する必要があります。CategoryCollection

ApplicationModel = Backbone.Model.extend({
    url: '/apiUrl/',
    parse: function(data)
    {
         var result = {};
         result.users = new UserCollection(data.users);
         result.posts= new PostCollection(data.posts);
         result.categories = new CategoryCollection(data.categories);
         return result;
    }
});
于 2013-06-26T11:12:01.843 に答える