Javascript 主干错误:未捕获类型错误:对象函数(){parent.apply(this,arguments);}没有方法';在';

Javascript 主干错误:未捕获类型错误:对象函数(){parent.apply(this,arguments);}没有方法';在';,javascript,backbone.js,coffeescript,Javascript,Backbone.js,Coffeescript,你知道为什么调用collection.fetch时会出现此错误吗 在代码的这一部分中抛出: 这是触发错误的代码: $(document).ready -> SearchResult = Backbone.Model.extend SearchResults = Backbone.Collection.extend url: "/backbone/search" model: SearchResult parse: (response)->

你知道为什么调用
collection.fetch
时会出现此错误吗

在代码的这一部分中抛出:

这是触发错误的代码:

$(document).ready ->
  SearchResult = Backbone.Model.extend

  SearchResults = Backbone.Collection.extend
    url: "/backbone/search"
    model: SearchResult
    parse: (response)->
      console.log response
      new SearchResult
        id: response.id
        title: response.title


  searchResults = new SearchResults()

  searchResults.fetch()

实际上,您并没有将模型附加到集合中

从文档中,解析应该是

返回要添加到集合的模型属性数组


我还没有测试过它,但我相信它会起作用。

问题在于这行代码:

SearchResult = Backbone.Model.extend
应该是这样的:

SearchResult = Backbone.Model.extend()

否则,CoffeeScript将
extend
函数分配给SearchResult

您需要返回一个对象,该对象可以传递到
newSearchResult
以获得搜索结果。如果您查看Collections.Fetch代码,它将使用解析结果传递给add(这确定它是数组还是单个对象;对于数组,它将循环通过它们,对于单个对象,它将直接传递给_add),我刚才遇到了相同的错误消息,这是正确的答案。
SearchResult = Backbone.Model.extend()