Основная ошибка: Uncaught TypeError: Object function () {parent.apply (this, arguments);} не имеет метода 'on' - PullRequest
7 голосов
/ 09 февраля 2012

Любые идеи, почему я получаю эту ошибку, когда я призываю collection.fetch?

Это брошено в этом разделе кода:

Backbone Error

Этокод, который вызывает ошибку:

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

Ответы [ 2 ]

8 голосов
/ 09 февраля 2012

Проблема была с этой строкой кода:

SearchResult = Backbone.Model.extend

Это должно было быть так:

SearchResult = Backbone.Model.extend()

В противном случае CoffeeScript назначал функцию extend для SearchResult

2 голосов
/ 09 февраля 2012

Вы на самом деле не присоединяете модели к коллекции ...

из документов, синтаксический анализ должен

возвращать массив атрибутов модели для добавления в коллекцию..

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

  SearchResults = Backbone.Collection.extend
    url: "/backbone/search"
    model: SearchResult
    parse: (response) ->
      _.map response, (item) ->
          id: item.id
          title: item.title

  searchResults = new SearchResults()    
  searchResults.fetch()

Я не проверял, но я верю, что это будет работать

...