将模型的属性传递给集合选项


如何将

模型的属性传递给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')}
        }
    ]
});

来自精细手册:

集合选项

值:接受Backbone.Relational模型实例并返回选项哈希的选项哈希或函数。

因此,只需使用函数而不是对象文字:

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

例如,这种"对象或函数"模式在 Backbone 世界中相当常见,Model#defaults的行为方式相同。

相关内容

  • 没有找到相关文章

最新更新