Backbone.js: Models and Collections
Сегодня коротенько пробежимся по моделям и коллекциям. Расскажу, что это и с чем это едят.
Начнём с модели:
urlRoot: '/posts'
В большинстве случаев это всё, что будет указываться при описании модели: указываем, что модель наследуется от Backbone.Model, а потом указываем путь, по которому Backbone будет слать RESTful-запросы.
Я несколько слукавил, когда сказал, что это всё, что Вам надо будет писать при описании модели (-: В более-менее серьёзном приложении необходимо будет задать ещё значения по умолчанию для модели (defaults), а так же некоторую проверку вводимых значений (validation). Всё это, в принципе, выходит за рамки ознакомительной части, однако, валидацию я добавлю чуть позже, но не в слое модели, а в слое отображения (view), при помощи плагина jquery.validation: он гораздо гибче, чем встроенный в Backbone. Ну а так же покажу, как реализовать проверку на стороне сервера и отображение ответа на клиенте.
Теперь, что касается коллекций. Опять же, пример коллекции:
model: App.Models.Post
url: '/posts'
Предлагаю сразу разъяснить, что такое и чем отличаются коллекции и модели, чтобы не было путаницы. Особенное ,если Вы имели опыт работы с моделями в тех же «рельсах». Модель — это единичная запись, а коллекция — это набор этих записей, моделей. Т.е. когда вы получаете или устанавливаете атрибуты какого-то объекта, например, имя пользователя или его электронный адрес, — это работа с моделью. А вот когда вы делаете запрос к серверу, получаете, а потом отображаете всех пользователей — это уже работа с коллекцией. Коллекция — это множество моделей. И коллекция работает с моделью, о чём и указывает свойство model: App.Models.Post. А так как коллекция работает тоже с данными на сервере, то и путь указывается такой же, что и в модели.
Вот и всё, что касается моделей и коллекций. Более тесно с ними познакомимся, когда коснёмся отображений(views), т.к. картинки строятся на основании данных, полученных с сервера, а так же при создании, изменении или удалении информации пользователем.
Не теряйтесь (-:
Недавние записи
- Long time no see
- Ошибка при обновлении Meteor до версии 1.4.2
- Patch falcon для ruby-1.9.3-p327
- Ускоряем ruby и Rails
- Gem ‘seo_params’: определение основных параметров
- Отрицательный margin-top и Opera
- Rspec and Devise reset password
- Backbone.js: Views. Часть первая.
- Backbone.js: Models and Collections
- Backbone.js Routers