【发布时间】:2014-05-07 14:19:43
【问题描述】:
所以下面只是我在做的一个粗略的想法,集合是嵌套的,当this.collection.get('players') 发生变化时我需要调用getMax()
module.exports = LeadersCollectionView = Marionette.CompositeView.extend({
className: 'live-stats',
template: require('../../../templates/leaders/live-stats.hbs'),
initialize: function() {
this.listenTo(this.collection, 'change', this.render);
//this.listenTo(this.collection.get('players'), 'change', this.render);
},
getMax : function(attribute) {
console.log('getMax called')
var home = this.collection.get('5368dcc1227a937829b2cb4a').players.models;
var away = this.collection.get('5368dcd9227a937829b2cb4c').players.models;
leaders = new PlayersCollection(home.concat(away))
return leaders.max(function(leader) {
return leader.get(attribute);
});
},
templateHelpers:function(){
return {
maxPoints: this.getMax('points').get('player_name')
}
},
itemView: leadersView,
appendHtml: function(collectionView, itemView){
collectionView.$('.live-data .created-teams').append(itemView.el);
}
});
我使用的是骨干关系,然后决定放弃它,现在我想我可能再次需要它,但希望有更简单的方法。
因此,虽然可能有更好的方法来编写 getMax() 函数(显然静态团队目前已传入)如果我无法更新 getMax() 当点在球员模型。
所以我的问题是,我可以在没有骨干关系的情况下监听嵌套模型的变化吗?我该怎么做?
【问题讨论】:
标签: javascript backbone.js marionette