1

我在我的应用程序中使用了很棒的三重奏: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第 1638 行

我从骨干关系主页查看了子模型的示例代码,但我在这里找不到任何我做错的事情。

如果有人可以帮助我,我将非常感激。

4

1 回答 1

3

我自己也遇到了这个。这是与 CoffeeScript 相关的,详见此处。您需要MyApp.User.setup()在类定义之后调用。

于 2013-11-15T19:45:01.803 回答