Backbone.js — это библиотека JavaScript, за основу которой был взят шаблон проектирования ModelViewPresenter. Данное программное обеспечение предназначено для создания веб-приложений с поддержкой интерфейса RESTful JSON. Оно задает необходимую структуру по ключу благодаря моделям бидингам. Такой продукт доступен с лицензией MIT и помещается на GitHub. В доступе онлайновые тесты с примерами приложения и списком туториалов. Версия на русском языке доступна на GitHub.
Ядро в Backbone.js представлено следующие «классы»:
- Router — принимает url и сообщает, какой view необходимо запустить.
- View – есть привязанным к dom элементам, и отвечает за хранящиеся данные. Главная задача – организовать интерфейс в логической последовательности. Это происходит благодаря встроенным моделям.
- Collection – логически расположены наборы модулей. Событие, сработанное на модели в коллекции, одинаково сработает и на коллекции. Это обеспечивает прямой контакт с изменениями атрибутов любой модели.
- Model – являются самым важным элементом данного приложения. В них содержатся все интерактивные данные. А также валидации, конвертации, контроль доступа и вычисленные свойства. Таким образом, это основной набор по управлению изменениями.
Backbone.js имеет список встроенных запускаемых событий. К ним относятся:
- add – добавление модели в коллекцию и запуск события. При определении этого свойства передаваемые сырые атрибуты изменятся в экземпляры моделей. Добавление идентичной модели пропускается.
- remove – удаление модели из коллекции. Данное событие можно подавить опрееленным ключом, хранящимся в хэше options.
- reset – замена содержимого в коллекции. Обновление происходит заменой нового массива моделей.
- sort – сортировка коллекции. Как правило, коллекции сортируются автоматически в случае добавления моделей. При желании, такую сортировку можно отключить.
- change – изменение атрибута модели.
- destroy – уничтожение модели.
- request – отправка моделью запроса на сервер.
- sync – синхронизация модели с сервером.
- error – вызов «save» потерпел неудачу на сервере.
- invalid – валидация модели не пройдена.
Однако, этим программа не ограничивается и дает возможность запуска собственных.
Для осуществления операций над моделями данная программа проксирует шесть методов. Это: pairs, values, keys, pick, invert, omit.