0

我目前对 Backbone 的 todos 应用程序示例有疑问。你可以在这里找到我的代码:http: //jsfiddle.net/chrisg93/96tgP/3/

$ ->
  Todo = Backbone.Model.extend
    defaults:
      title: "Empty task"
      done:  false
      order: Todos.nextOrder()

  TodoList = Backbone.Collection.extend
    model: Todo
    nextOrder: ->
      if not @length then 1 else (@model.last().get "order") + 1

  Todos = new TodoList()

当我尝试运行此极简代码时,我收到一条错误消息,提示我无法调用未定义的方法“nextOrder”。我已按照教程进行操作,但不明白为什么这不起作用。

你可以帮帮我吗?提前致谢。

4

1 回答 1

1

模型内部的定义Todos是未定义的。

我认为您应该order为您的模型创建一个方法并引用该模型所属的集合,如下所示:

Todo = Backbone.Model.extend
    defaults:
      title: "Empty task"
      done:  false

    order: @collection.nextOrder()
于 2013-03-22T13:38:05.593 回答