Я новичок в 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
Я знаю, что я повсюду, но если бы кто-то мог направить меня в правильном направлении, я был бы очень признателен....
Огромное спасибо.
Самир