是的,我知道有一个名为Backbone-Relational的插件,但我对其fetchRelated函数有一个严重的问题,在我看来,它对我来说毫无用处。
所以我想知道是否有其他选择?或者我们真的需要像Backbone-Relational这样的插件吗?如何使用纯主干处理以下场景:
假设我们有两个主干模型:Company
和Person
。一个Company实例可以有多个person。所以company.get('employees')
将返回一个Person id数组。如果我想获得相关员工的详细信息,我必须遍历数组并对来自服务器的每个person进行fetch()
。但是如果那些Person实例已经被下载了呢?是否有一种干净的方法来确保没有冗余?
也许我们可以为每个模型维护一个Collection,并转储我们下载到其中的每个实例。然后,只有当实例不存在于集合中时,我们才能下载它。但是我认为这会让代码看起来很糟糕。
所以请分享你的经验。谢谢!
如您所建议的,我将给Company模型一个Persons属性。但是你似乎忘记了集合也有一个fetch方法(以及许多你会发现非常有用的其他方法,如get方法)。
另外,作为最后一件事,我想引用Backbone的文档(关于集合的获取方法):
请注意,fetch不应该用于在页面加载时填充集合——加载时需要的所有模型都应该已经被引导到位。Fetch是为那些不立即需要的接口的惰性加载模型设计的:例如,带有可能被切换打开和关闭的注释集合的文档。"