我有一个非常复杂的主干模型结构。
- m.Question:是一个基础问题。如果这是 C++,那将是一个“抽象”模型,因为只有它的子级会被实例化
- m.NumericQuestion:扩展 m.Question
- m.MultipleChoiceQuestion:扩展 m.Question
- m......问题:你会得到很多问题类型
- c.Questions:m.Question 孩子的集合
当被保存到数据库时,它们都有一个名为“type”的属性,它决定了它应该是什么模型。
当从服务器检索原始问题时,它们被放置在 Questions 集合(c.Questions)中。Backbone 应该解析来自服务器的响应并根据类型制作适当的模型。
所以我为 c.Questions 写了一个 _prepareModel() 函数。
但是当我执行 c.Questions.fetch() 时,我发现首先调用 Backbone.Collection.prototype._prepareModel (Backbone 关系具有的那个)!有没有办法可以事先拦截模型创建?