Я пишу довольно сложное JavaScript-приложение с архитектурой MVC, которое реализую с помощью поддержки Class
Prototype и шаблона Module. Приложение использует AJAX и шаблон Observer. Я создаю свой экземпляр контроллера, когда DOM загружен, передаю ему представление и некоторые модели, созданные из данных JSON, и он уходит.
Однако я обнаружил, что должен установить свой экземпляр контроллера как свойство для объекта Window
- т.е. объявите это без использования var
- потому что у меня есть обратный вызов успеха AJAX, который обновляет объект представления, принадлежащий контроллеру, и на данный момент в коде мой милый маленький мир MVC находится вне области действия.
Я исследовал передачу объекта вида в качестве параметра в функцию, содержащую код AJAX, но это стало очень запутанным и привело бы к некоторым ужасным нарушениям шаблона MVC, таким как соединение модели и представления. Это было ужасно.
Считается ли что-то вроде хранения экземпляра моего контроллера непосредственно на Window
плохим тоном? Для меня это немного похоже на использование глобальной переменной, но я никак не могу ее обойти.