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()