2012-11-29 101 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