0

モデルの属性をcollectionOptionsに渡すにはどうすればよいですか?そのようにparam0を渡そうとすると、代わりにインスタンスthisが参照されます。windowMyModel

var MyModel = Backbone.RelationalModel.extend({
    defaults: {
        param0: null,
    },
    relations: [
        {
            type: Backbone.HasMany,
            key: 'others',
            relatedModel: 'OtherModel',
            collectionType: 'OtherModelCollection',
            collectionOptions: {param0: this.get('param0')}
        }
    ]
});
4

1 に答える 1

1

細かいマニュアルから:

collectionOptions

値:オプションハッシュまたはBackbone.Relationalモデルのインスタンスを受け入れてオプションハッシュを返す関数。

したがって、オブジェクトリテラルの代わりに関数を使用してください。

collectionOptions: function(m) {
    return {
        param0: m.get('param0')
    };
}

この「オブジェクトまたは関数」パターンは、バックボーンの世界ではかなり一般的です。たとえば、Model#defaults同じように動作します。

于 2012-11-29T16:31:45.203 に答える