如何将模型的属性传递给collectionOptions?当我尝试传递这样的param0时,this
被引用到window
而不是MyModel
实例:
var MyModel = Backbone.RelationalModel.extend({
defaults: {
param0: null,
},
relations: [
{
type: Backbone.HasMany,
key: 'others',
relatedModel: 'OtherModel',
collectionType: 'OtherModelCollection',
collectionOptions: {param0: this.get('param0')}
}
]
});
答案 0 :(得分:1)
来自fine manual:
<强> collectionOptions 强>
值:一个选项哈希或一个接受
Backbone.Relational
模型实例并返回一个选项哈希的函数。
所以只需使用函数而不是对象文字:
collectionOptions: function(m) {
return {
param0: m.get('param0')
};
}
这种“对象或功能”模式在Backbone世界中相当常见,例如,Model#defaults
的行为方式相同。