Backbone.js: не отображаются модели

Я хочу показать простой список языков.

class Language extends Backbone.Model defaults: id: 1 language: 'N/A' class LanguageList extends Backbone.Collection model: Language url: '/languages' languages = new LanguageList class LanguageListView extends Backbone.View el: $ '#here' initialize: -> _.bindAll @ @render() render: -> languages.fetch() console.log languages.models list_view = new LanguageListView 

languages.models кажется пустым, хотя я проверил, что запрос пришел, и языки были извлечены. Я что-то упускаю?

Благодарю.

Вызов fetch асинхронен:

Fetch collection.fetch([options])

Извлеките набор моделей по умолчанию для этой коллекции с сервера, сбросьте коллекцию, когда они прибудут. Хэш параметров имеет success и обратные вызовы error которые будут переданы (collection, response) качестве аргументов. Когда данные модели возвращаются с сервера, коллекция сбрасывается.

В результате вы вызываете ваши console.log languages.models до того, как вызов languages.fetch() получил что-то обратно с сервера.

Поэтому ваш render должен выглядеть примерно так:

 render: -> languages.fetch success: -> console.log languages.models @ # Render should always return @ 

Это должно получить что-то на консоли.

Было бы @render вызвать languages.fetch для initialize и привязки @render к событию reset коллекции; То вы можете поместить вещи на страницу, когда коллекция будет готова.

Кроме того, с CoffeeScript редко требуется _.bindAll @ . Вы должны создать соответствующие методы с помощью => .

  • Как передать две анонимные функции в качестве аргументов в CoffeScript?
  • Не удается найти модуль «кофе-скрипт»
  • Цепочка метода с аргументами функции
  • Объединить исходные карты двух этапов компиляции
  • Ошибка компиляции Coffeescript в рубине на рельсах
  • JS Как назначить объекты сеттерам и геттерам?
  • Событие изменения модели не срабатывает при обновлении массива?
  • Как я могу отладить CoffeeScript в моем приложении Meteor с помощью WebStorm IDE
  • Node.js появляются с цветами?
  • Вход в токен JQuery - allowCustomEntry не работает
  • Отклонить угловой UI-маршрутизатор $ stateChangeStart до получения ответа на авторизацию сервера
  • Давайте будем гением компьютера.