2012-11-29 99 views
0

如何将模型的属性传递给collectionOptions?当我尝试通过参数0这样,那么this是参照window而不是MyModel例如:将模型的属性传递给collectionOptions

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

回答

1

fine manual

collectionOptions

价值:期权散列或一个接受Backbone.Relational模型实例并返回选项散列的函数。

所以只使用一个函数,而不是一个对象字面:

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

该“对象或功能”模式是在骨干世界相当普遍,例如,Model#defaults的工作方式。

+0

谢谢,我不小心错过了那一行) – mumu2