Я никогда не использовал Coffeescript, однако, я поправляюсь в позвоночнике ... поэтому я попробую. Есть несколько вещей, которые могут происходить здесь. backbone.js зависит от jquery или zepto и underscore.js, которые используют $ и _ в качестве специальных переменных. Это может вызывать проблемы с coffeescript.
Возможно, вы захотите запустить пример базового приложения вместо того, чтобы попробовать его с помощью coffeescript.
Что касается кода выше, я думаю, что я заметил несколько вещей:
При создании экземпляра модели с данными у нее не будет идентификатора (поскольку она не синхронизирована с сервером в соответствии с документацией, упомянутой выше). Если данные IS с сервера, то включите id: id в хеш инициализации, и model.id вернет id. Если вам нужен уникальный идентификатор для модели, которая НЕ была синхронизирована, вы можете использовать атрибут 'cid' (который является локальным уникальным идентификатором).
Помните, что когда вы «расширяете», вы на самом деле создаете класс, поэтому, если вы не создали экземпляр экземпляра коллекции, «выборка» не будет работать. Вам нужно будет сделать:
var collection = new Collection();
collection.fetch();
Причина, по которой функция save () не работает, заключается в том, что вы не определили URL для единственной модели. Вы определили его в коллекции, но не в модели, поэтому, если вы попытаетесь создать экземпляр модели, не связанной с коллекцией, у нее не будет ссылки на службу restful.
Надеюсь, это поможет!