Backbone.js:将值从Collection传递给每个模型

San*_*eef 5 javascript backbone.js backbone-relational

我需要在初始化时将视图中的值传递给集合中的每个模型.

Till Collection我们可以在Backbone.Collection构造函数中传递'options'.

在此之后,是否有任何技术可以将一些"选项"传递到集合中的每个模型中?

var Song = Backbone.Model.extend({
    defaults: {
        name: "Not specified",
        artist: "Not specified"
    },
    initialize: function (attributes, options) {
        //Need the some_imp_value accessible here
    },
});

var Album = Backbone.Collection.extend({
    model: Song

    initialize: function (models, options) {
        this.some_imp_value = option.some_imp_value;
    }
});
Run Code Online (Sandbox Code Playgroud)

Ste*_*hen 6

您可以覆盖"_prepareModel"方法.

var Album = Backbone.Collection.extend({
    model: Song

    initialize: function (models, options) {
        this.some_imp_value = option.some_imp_value;
    },

    _prepareModel: function (model, options) {
        if (!(model instanceof Song)) {
          model.some_imp_value = this.some_imp_value;
        }
        return Backbone.Collection.prototype._prepareModel.call(this, model, options);
    }
});
Run Code Online (Sandbox Code Playgroud)

现在,您可以在'initialize'中查看传递给模型的属性,然后您将获得some_imp_value,然后您可以根据需要在模型上进行设置.