Javascript 主干-在初始化收集时传递数据';s模型

Javascript 主干-在初始化收集时传递数据';s模型,javascript,backbone.js,Javascript,Backbone.js,这就是我当前处理传递到集合模型的数据的方式。但我不确定这是否是最好/正确的方法 MyCollection: define([ 'underscore', 'backbone','models/mymodel'], function(_, Backbone, myModel){ var MyCollection = Backbone.Collection.extend({ model: function (attr, options){ options.data =

这就是我当前处理传递到集合模型的数据的方式。但我不确定这是否是最好/正确的方法

MyCollection:

define([ 'underscore',  'backbone','models/mymodel'], function(_, Backbone, myModel){
  var MyCollection = Backbone.Collection.extend({
    model: function (attr, options){
        options.data = {data: options.collection.options.some_data};
        return new myModel(attr, options);
    },

    initialize: function(options) {
        this.options = options;
    }

  });

  return MyCollection;
});
define([ 'underscore',  'backbone' ], function(_, Backbone){
  var MyModel = Backbone.Model.extend({
    defaults: {
    },

    initialize: function(attr, options) {
`       console.log(options.data)
    }
  });

  return MyModel;
});
MyModel:

define([ 'underscore',  'backbone','models/mymodel'], function(_, Backbone, myModel){
  var MyCollection = Backbone.Collection.extend({
    model: function (attr, options){
        options.data = {data: options.collection.options.some_data};
        return new myModel(attr, options);
    },

    initialize: function(options) {
        this.options = options;
    }

  });

  return MyCollection;
});
define([ 'underscore',  'backbone' ], function(_, Backbone){
  var MyModel = Backbone.Model.extend({
    defaults: {
    },

    initialize: function(attr, options) {
`       console.log(options.data)
    }
  });

  return MyModel;
});

这是初始化集合模型时传递数据的唯一方法吗

否,请在MyCollection中尝试以下操作:

model: myModel,
如果创建新的myModel,请执行以下操作:

var model = new myModel({
     prop1: 'something', // etc
});

您可以重写集合如何将属性哈希转换为模型。这是通过完成的,您可以更改传递给此方法的选项:

var MyCollection = Backbone.Collection.extend({
    model:  MyModel,

    _prepareModel: function(attrs, options) {
        options = _.extend({}, options, {
            data: this.options.some_data
        });

        return Backbone.Collection.prototype._prepareModel.call(this, attrs, options);
    },

    initialize: function(models, options) {
        // note that the options hash is the second argument
        this.options = options;
    }
});

和演示

,但我需要在初始化时将集合中存储的数据传递给它的模型。集合有一个模型,但包含此模型的多个实例的集合。那么,您到底想要实现什么呢?如上所述,只是为了将数据传递给模型。但是我需要数据在模型初始化时可用。我正在考虑使用它,但它几乎与我当前使用的相同。