Я организовал свое приложение Backbone, как описано на этой странице http://weblog.bocoup.com/organizing-your-backbone-js-application-with-modules
Для тех, кто не читал статью, я кратко объясню идею: я определяю одну переменную, которая будет содержать все мои модули.
var Application = {
module: function(){
var modules = {};
return function(name){
if (typeof modules[name] == 'undefined')
{
modules[name] = {
Model: {},
Collection: {},
Views: {},
}
}
return modules[name];
};
}()
};
Application.module - это функция, которая возвращает модуль по имени.Затем я определяю свои прикладные модули следующим образом:
(function(chat){
chat.Model = Backbone.Model.extend({ ... }),
chat.Collection = Backbone.Collection.extend({ ... }),
etc.
})(Application.module('Chat'));
Кажется, все в порядке - весь код разделен на модули, но когда я пытаюсь создать экземпляр переменной из одного из классов модуля.
$(document).ready(function(){
var foo = new Application.module('Chat').Collection();
});
Приведенный выше код дает мне сообщение об ошибке «Uncaught TypeError»: не удается прочитать свойство «bind» из неопределенного », и я не могу понять, почему?