使用BackboneJS创建测验模型

时间:2011-08-16 16:09:00

标签: javascript backbone.js

第一次使用BackboneJS,但我有点难以创建一个“测验”模型和一个“圆形”模型。该测验记录得分等,测验有很多轮。 “测验”视图创建一个新的“测验”模型,然后它创建一个“圆形”视图的新实例。 “Round”视图创建“Round”模型的新实例。用户继续在“回合”视图中填写有关“回合”模型的信息。这就是结构问题的来源。我应该如何跟踪结果?

“测验”模型有一个得分属性,但“圆形”视图无法访问“测验”模型的属性,除非直接传入。如果我这样做,我会通过测验的分数基本上属于未来的每个视图。这样好吗?或者我应该创建一个全局评分变量?或者,我该怎么做?

1 个答案:

答案 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