Javascript 将关系视图转换为项目视图?
更新我仍然不是100%,但我做了一把小提琴,它似乎工作得很好,我仍在测试它,看看是否有任何警告,但这似乎工作得很好,看起来我可以放下主干关系和深度模型:)我需要的是整个时间的复合视图,谢谢Derrick Bailey 我有很多球队和球员。继续结帐,看看更多我想做的事情,它会让我对我正在做的事情有一个更好的了解Javascript 将关系视图转换为项目视图?,javascript,backbone.js,backbone-relational,Javascript,Backbone.js,Backbone Relational,更新我仍然不是100%,但我做了一把小提琴,它似乎工作得很好,我仍在测试它,看看是否有任何警告,但这似乎工作得很好,看起来我可以放下主干关系和深度模型:)我需要的是整个时间的复合视图,谢谢Derrick Bailey 我有很多球队和球员。继续结帐,看看更多我想做的事情,它会让我对我正在做的事情有一个更好的了解 var Relational = require('backbone.relational'); module.exports = TeamModel = Backbone.Relati
var Relational = require('backbone.relational');
module.exports = TeamModel = Backbone.RelationalModel.extend({
relations: [{
type: Backbone.HasMany,
key: 'players',
relatedModel: 'PlayerModel',
collectionType: 'PlayersCollection',
reverseRelation: {
key: 'playsOn',
includeInJSON: 'id'
}
}]
});
然后是玩家模型
module.exports = PlayerModel = Backbone.RelationalModel.extend({});
我基本上很好,我可以做这样的事情
var bulls = new TeamModel({ name: 'bulls' });
var michael = new PlayerModel({ position: 'Point Guard', playsOn: bulls });
console.log( bulls.get( 'players' ).pluck( 'position' ) );
console.log( michael.get( 'playsOn' ).get( 'name' ) + ', ' + bulls.get( 'players' ).length );
我终于对主干关系有了一个简单的理解,但我不确定如何以我想要的方式使用木偶构建视图,即
<div class="team bulls">
<div class="the-players">
<div class="player michael"></div>
</div>
</div>
<div class="team warriors">
<div class="the-players">
<div class="player steph"></div>
</div>
</div>
我写了一个提琴,但是为了让所有的部件都能正常工作我有点困难,我不得不从头开始做,因为我的实际应用程序要大得多,而且是模块化的,所以这里是一个基本的想法
我只是尝试使用关系主干,这样我就可以在视图中有一个团队元素/视图,其中包含与该团队相关的玩家列表。我使用嵌套模型进行了良好的设置,但这在添加/更新玩家时造成了很多问题
另外,我已经成功地收集了一些球队和球员,将他们合并在一起,但这感觉很粗糙,每个人都说使用关系,所以我在这里,只是有些方面我不能理解,所以希望有人能指出:)
更新的FIDDLE我正在取得一些进展,我仍然不知道如何在这里应用关系数据库
编辑:我以前是这样做的,问题是为特定的团队更新集合,我可能会就此提出一个新问题,看看哪种解决方案更好,或者也许小提琴是一种好方法,我只是需要一种更好的更新和保存方法。我的问题有意义吗,是否有人在集合中使用了集合?似乎这是没有人做的事情,我不知道为什么或者怎么做?另一个支持添加团队和球员的更新我希望这对其他人有所帮助。另外需要注意的是,我构建fiddle主干的方式。关系实际上有助于我的复合视图。。当我调用
this.collection=this.model.get('players')
时,似乎通过使用关系模型一切都很顺利,当我恢复到正常的主干模型时,我遇到了问题,因此我认为设置关系模型后,我不必做任何额外的工作。我不确定您的小提琴还缺少什么。它似乎非常符合您作为比较添加的“理想示例”。如果您已经找到了解决方案,请随时为您自己的问题添加答案。