Реализация 1-страничного веб-приложения JavaScript с использованием принципов MVC - PullRequest
2 голосов
/ 20 мая 2011

Как бы вы реализовали это приложение на JavaScript, используя принципы MVC?

enter image description here

Как видите, приложение в основном имеет 3 вида: "Боковая панель", "Визуализация" и "Таймлайдер". Базовая модель должна отслеживать выбранные страны и год.

При запуске приложения оно должно загрузить файл json, который заполняет модель данными. С какой-либо системой событий (пожалуйста, совет), контроллер должен быть уведомлен о стабильной модели, и должны быть установлены соответствующие представления.

Например, добавление страны на боковой панели должно вызвать перезагрузку данных с последующим обновлением масштабов x / y представления визуализации для размещения большего количества стран и т. Д.

Как бы вы отделили логику от представлений (что было бы в модели, представлении и контроллере соответственно) и какие библиотеки вы бы использовали? (особенно в отношении обработки событий).

Код высоко ценится ... Спасибо.

1 Ответ

1 голос
/ 20 мая 2011

Для такого рода приложений я предлагаю вам взглянуть на backbone.js .

Что в основном:

Магистраль предоставляет структуру для JavaScript-тяжелыхприложений, предоставляя модели с привязкой значения ключа и настраиваемыми событиями, коллекции с богатым API перечислимых функций, представления с декларативной обработкой событий и подключая все это к существующему приложению через интерфейс RESTful JSON.

Вы можете взглянуть на Views в документации backbone.js;у них есть огромное количество примеров для вас, которые будут более полезны, чем я, предоставляя полное решение, используя backbone.jsУ них также есть несколько демонстраций с полностью собранными приложениями, готовыми для вас.

Обновление: также взгляните на spine.js , который действительно похож на backbone, но это нето же самое, из их FAQ, разница в следующем:

Ого - ваш API действительно похож на Backbone.Почему я должен использовать это вместо этого?

Ну, это правда, что Spine был вдохновлен Backbone, отличной библиотекой, и его контроллер API очень похож.Однако на этом сходство заканчивается.Внутренне библиотека работает совсем по-другому.Например, Spine не нуждается в коллекциях, которые необходимы почти для каждой модели в Backbone.Spine предоставляет библиотеку классов и имеет совершенно разные идеи, когда дело доходит до синхронизации с сервером.Наконец, Spine намного проще и в два раза меньше, иди и проверь источник.

...