我在我的应用程序中使用了很棒的三重奏:Backbone + Backbone Relational + Marionette。
目前,我在创建多态关系时遇到了一些麻烦。
这是我目前使用的代码的简化版本。
class MyApp.Conversation extends Backbone.RelationalModel
urlRoot: "/api/v0/conversations"
relations: [
{
type: Backbone.HasMany
key: "members"
relatedModel: MyApp.User
}
]
class MyApp.User extends Backbone.RelationalModel
urlRoot: "/api/v0/users"
# subModelTypes: {
# "Teacher": MyApp.Teacher
# "Student": MyApp.Student
# }
class MyApp.Teacher extends MyApp.User
class MyApp.Student extends MyApp.User
当我将 subModelTypes
部分注释掉(正如我粘贴在这里)时,一切正常(除此之外,所有对话成员都是用户,而不是教师/学生)。当我将 subModelTypes
添加到我的模型中时,出现以下错误:
Uncaught TypeError: Object.keys called on non-object
在 Line 1638
我从 backbone-relational 主页上查看了子模型的示例代码,在这里我找不到任何我做错的地方。
如果有人能帮助我,我将不胜感激。
最佳答案
我自己刚遇到这个。这是 CoffeeScript-related, as detailed here .您需要在类定义之后调用 MyApp.User.setup()
。
关于javascript - Backbone 关系子模型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18916281/