Правильно ли я структурирую свое приложение? - Backbone.js

Я новичок в Javascript и backbone.js. Разработали приложение в AS3 с помощью RobotLegs, и вам нужно перенести его на Javascipt. Что касается MVC на стороне клиента, я начал искать Backbone.js. Концепции кажутся простыми, но я немного не уверен, что делаю что-то «правильно». Также есть места, где я застрял...

В общем, у меня есть эта веб-служба (не RESTful), из которой мне нужно ПОЛУЧИТЬ объект JSON с конфигурацией приложений. В идеале, я думаю, что лучший способ сделать этот вызов будет из модели Backbone, но я не уверен, как переопределить URL-адрес и метод Parse, чтобы заставить его работать с службами Non Restful. Итак, сейчас я делаю вызов Ajax из-за пределов модели в App.js (код приведен ниже).

Как только я получу данные из вызова JSON, я хочу сохранить их в объекте ConfigModel (SingleTon Model), который я могу запрашивать из модулей для получения объектов значений, которые в конечном итоге заполняют некоторые представления. У меня есть 2 проблемы здесь.

1) Я не знаю, как реализовать модель Singleton с помощью Backbone.js 2) Я не знаю, как я могу разделить свою ConfigModel на более мелкие модели/коллекции и нужно ли мне сделать их тоже Singleton или просто передать их конструкторы представлений.

Я использую Require.js для определения ([]) зависимых модулей для определенного представления/модели и т. д. Теперь я не уверен в области загруженных модулей. Если мне нужно сделать их Singleton, я должен просто загрузить их где-нибудь один раз, а затем внедрить зависимость в другие объекты классов/модулей. Как мне это сделать с помощью Backbone.js???

Наконец, я хочу использовать настраиваемые события во всей структуре. Тип событий Framework, которые я могу отправлять по всему миру и прослушивать из моделей/представлений и т. д.

Как видите, я довольно запутался в отношении областей/синглетонов и того, как все это вписывается в Backbone.js и Require.

Вот как у меня сейчас структурировано приложение...

1) Мой файл index.html загружает «Main.js» с Require.js

2) В Main.js я загружаю App.js и вызываю для него init. Init вызывает функцию getConfig(), которая делает вызов AJAX к веб-службе, получает и анализирует текстовый файл JSON. Это я хотел сохранить в singleton ConfigModel. Тем не менее, я прокомментировал это прямо сейчас, потому что я начал играть со способами вызова веб-сервиса с помощью моей ConfigModel... Что не сработало.

3) Затем у меня есть маршрутизатор с картой URL-адресов по умолчанию. Я инициализирую маршрутизатор после успешного получения JSON от веб-службы. Я не уверен, правильно ли это, или я должен сделать вызов Ajax с маршрутизатора?

Вот код: http://pastebin.com/HHRF88Tq

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

Огромное спасибо.

Самир


person smaira    schedule 11.04.2012    source источник


Ответы (1)


Вы хотите посмотреть шаблоны магистрали для получения лучших практик (например, загрузка ваших моделей!)

http://ricostacruz.com/backbone-patterns/

и ознакомьтесь с основами магистрали для полного обзора архитектуры магистрали ( wip )

http://addyosmani.github.com/backbone-fundamentals/

person Willem D'Haeseleer    schedule 11.04.2012
comment
Спасибо, Хелмус, это действительно полезно :) - person smaira; 11.04.2012