Модель Backbone.js не определена в поле зрения? - PullRequest
1 голос
/ 18 февраля 2012

Я решил, что попробую выучить backbone.js, создав веб-приложение. Это первый раз, когда я сделал что-то обширное в javascript, поэтому ответ на мою проблему может быть прямо перед моим лицом.

У меня есть веб-приложение на github , а также работающая версия , которая не работает. Консоль javascript просто говорит, что что-то не определено, когда я не думаю, что это должно быть. Вот ошибка, которую выдает chrome для строки 30 app.js:

Uncaught TypeError: Cannot read property 'el' of undefined

Я как бы ссылался на пример модульного списка дел Магистральные основы *1011*, и похоже, что с подобной вещью проблем не возникает.

Если бы кто-нибудь мог указать, что я делаю неправильно, я был бы очень признателен!

Заранее спасибо!

Ответы [ 2 ]

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

Метод визуализации в вашем представлении Machine отсутствовал return this, и по умолчанию все методы возвращают undefined - поэтому цепочка не работает

Редактировать: и небольшой совет:

jQuery, Underscore и Backbone регистрируются глобально - и благодаря этому вам не нужно каждый раз определять их как зависимости - достаточно, если они требуются в основном сценарии один раз, а после этого вы можете получить к ним доступ из глобальной области видимости как обычно

0 голосов
/ 25 февраля 2013

В моем случае я возвращал this без ключевого слова return. Поскольку я использовал javascript, а не coffeescript, мне это не удалось. Итак, если вы используете JavaScript, используйте return this; вместо просто this в последней строке функции render().

У меня также была проблема при использовании this.collection.on('reset', this.render(), this). Мне вместо этого пришлось использовать this.collection.on('reset', this.render.bind(this));

...