第一次使用BackboneJS,但我有点难以创建一个“测验”模型和一个“圆形”模型。该测验记录得分等,测验有很多轮。 “测验”视图创建一个新的“测验”模型,然后它创建一个“圆形”视图的新实例。 “Round”视图创建“Round”模型的新实例。用户继续在“回合”视图中填写有关“回合”模型的信息。这就是结构问题的来源。我应该如何跟踪结果?
“测验”模型有一个得分属性,但“圆形”视图无法访问“测验”模型的属性,除非直接传入。如果我这样做,我会通过测验的分数基本上属于未来的每个视图。这样好吗?或者我应该创建一个全局评分变量?或者,我该怎么做?
答案 0 :(得分:1)
您的Round
视图不应该访问Quiz
模型,但Round
可以通过此类全球活动执行此操作
var observatory = $({});
var quiz = Backbone.Model.extend({
initialize: function() {
observatory.bind('change_score', _.bind(this.changeScore, this))
},
changeScore: function(newScore) {
this.set({
score: newScore
});
}
});
var round = Backbone.View.extend({
events: {
'click button': 'changeScore'
},
changeScore: function(event) {
observatory.trigger('change_score', [event.currentTarget.value]);
}
});
此代码需要jquery