私は、モデル内でどのようにコレクションを構造体に追加するかについていくつかの洞察をしたいと思います。私の単純なアプリにはチーム(チームモデルとチームのコレクション)があり、各チームには多数のプレーヤー(プレーヤーモデルとプレーヤーコレクション)があります。Backbone.jsのモデル内でコレクションを配置する方法は?
Team A
- Player 1
- Player 2
- Player 3
Team B
- Player 1
- Player 2
のように...
どのように一つの構造など基幹アプリになります。だから、の視覚的な構造はとても似ているのですか?これまでの計画は次のとおりです。 1)TeamModelに対応するモデルプロパティを持つ複数のチームを保持するチームコレクションがあります。 2)すべての複数のプレーヤーとモデルプロパティを保持するプレーヤーコレクションは、PlayerModelに対応します。
チームコレクションとモデルをどのように持っているのか、プレイヤーコレクションとモデルに対応するのは混乱します。私。私の設計によれば、第3の関係は、各チームが選手の集まりを持つということです。しかし、私はどのようにそれを実装するのか分からない。
App.Models.Player = Backbone.Model.extend({});
App.Collections.Players = Backbone.Collection.extend({
model: App.Models.Player,
url: 'players',
getTeam: function(idTeam){
var gf = _.filter(this.models, function(model){
return (
model.get('idTeam') == idTeam
);
});
return gf;
}
});
App.Models.Team = Backbone.Model.extend({
players: players(this.get('id')) // asuming that players is an App.Collections.Players instance.
});
App.Collections.Team = Backbone.Collection.extend({
model: App.Models.Team,
url: 'teams'
});
そして、あなたはそれぞれのインスタンスを作成し、サーバーからデータを収集する際、一度すべてのコレクションが読み込まれているルータを起動します。
これは役立ちます。ありがとう。 –
@ clockwork189 Btw、私はそれを精密化していないが、* defaults *に入れることはできない。そうしないと、すべてのインスタンスが同じコレクションを共有します。 – Loamhoof