我想就如何将一个模型中添加结构集合一些见解。 我简单的应用程序有球队(所以团队模式和团队的集合),每队有一堆的玩家(玩家模型和球员的集合)。 所以,它的视觉结构如下所示:
Team A
- Player 1
- Player 2
- Player 3
Team B
- Player 1
- Player 2
等等...
一个人怎么会结构,主干应用程序? 这里是我正打算这么远:1)我想有一个团队集合,将持有的多个团队,其模型属性对应于TeamModel。 2)玩家收集,将持有的所有多个玩家和模型属性对应于PlayerModel。
现在我很困惑,我怎么会对团队收集和型号,对应与玩家收集和模型。 即,根据我的设计,第三个关系是每个团队将有玩家的集合。 但是我不确定如何实现这一点。
“ 现在我很困惑,我怎么会对团队收集和模型,带玩家收集和模式。即相当于按照我的设计,第三个关系是每个团队将有玩家的集合。”
只需添加到您的团队模型的属性,它会是玩家的集合。
var Team = Backbone.Model.extend({
initialize: function() {
// assuming Players a collection of players
this.set('players', new Players());
}
});
现在,填充数据是有很多的解决方案的另一个问题。 但做的事情,这样给你一个强大的结构。
You could do something like:
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'
});
And then, when you create the instances of each and collect data from the server, start the router once all collections have been populated.
It should work that way.