文档中关于多对多关系的示例假设公司将在创建人之后添加。
但是,如果人员数据来自已经包含公司列表(公司 ID)的服务器怎么办?
是否可以修改示例,以便可以使用以下代码(或类似 smt):
// 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'
当尝试以与一对多关系相同的方式实现这一目标时,我失败了:
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/