多対多の関係に関するドキュメントの例では、人物が作成された後に会社が追加されることを想定しています。
しかし、すでに企業のリスト (企業 ID) を含むサーバーから個人データが取得されている場合はどうなるでしょうか。
次のコード (または同様のコード) が可能になるように例を変更することは可能ですか?
// somewhere before we have a collection of companies defined like this:
// [{id: 1, name: 'ibm'}, {id: 2, name: 'apple'}]
// and than we do:
paul = new Person({
name: 'Paul',
jobs: [1, 2]
})
paul.get('jobs').at(0).get('name') // 'ibm'
1対多の関係で行うのと同じ方法でこれを達成しようとすると、失敗します:
Companies = Backbone.Collection.extend({model: Company})
companies = new Companies([{id: 1, name: 'ibm'}, {id: 2, name: 'apple'}])
john = new Person({
name: 'John',
jobs: [1]
})
john.get('jobs').toJSON() // []
companies.get(1).get('employees').toJSON() // []
これがあなたが遊ぶことができるフィドルです:http://jsfiddle.net/ymr5Z/