model.toJSON不是使用Backbone的函数

时间:2012-07-14 15:47:56

标签: backbone.js coffeescript

这:

@model

返回:

Object { type="conjugation", verb="ser", yo="soy", more...}

但是当我尝试时:

@model.toJSON()

我明白了:

TypeError: this.model.toJSON is not a function

我正在努力最终完成这一行:

$(@el).html(@template(@model.toJSON() ))

这样我就可以使用我的模板在Show中渲染这个对象。

有什么建议吗?

更新

根据评论。我把它作为一个模型,但我现在可以看到它们是如何相关的。

class AiProject.Models.Verb extends Backbone.Model
  paramRoot: 'verb'

我将尝试实例化这种类型的动词。

class AiProject.Routers.QuestionsRouter extends Backbone.Router
  initialize: (options) ->
    @verb = new AiProject.Models.Verb
    @verb = options.words

然后回到我的观点:

class AiProject.Views.Questions.ConjugationView extends Backbone.View
  template: JST["backbone/templates/questions/conjugation"]

render: ->
  $(@el).html(@template(@model.toJSON() ))

虽然仍有同样的错误..

1 个答案:

答案 0 :(得分:2)

看起来您首先正确设置模型,然后使用值options.words覆盖它。

而不是:

class AiProject.Routers.QuestionsRouter extends Backbone.Router
  initialize: (options) ->
    @verb = new AiProject.Models.Verb
    @verb = options.words

试试这个:

class AiProject.Routers.QuestionsRouter extends Backbone.Router
  initialize: (options) ->
    @verb = new AiProject.Models.Verb(options.words)

创建模型并传入options.words以设置为模型的属性。