Я начинаю использовать backbone.js и не понимаю, почему вы можете указывать URL-адреса разными способами. Не похоже, что URL-адрес коллекции используется где-либо, кроме функции URL-адреса модели. Так есть ли какой-то вред в том, чтобы просто установить urlroot для всех моих моделей и никогда не использовать URL-адреса коллекций?
Почему коллекции BackboneJs имеют URL-адреса?
Ответы (2)
в этом нет никакого вреда, вы можете прекрасно работать на уровне модели, выполняя обновления, удаления и т. д., но когда вы хотите ПОЛУЧИТЬ набор моделей с сервера сразу, удобно сделать что-то вроде этого.
Books = Backbone.Collection.extend({
url : "/books"
});
books = new Books();
books.fetch(); // this will line will make a GET request to your backend, the result will
// be a list of models.
В Backbone.js модели и коллекции связаны со «структурированием» данных, и Backbone предоставляет методы для этого. С маршрутами Restful вам чаще всего нужны обновления/выборки, подобные этому:
GET /students
[{name: "...", ...}]
GET /students/1
{name: "..."}
Как вы заметили, URL-адреса похожи, но в большинстве случаев обработка ответа на выборку коллекции и модели будет выглядеть по-разному. Поскольку концептуально модели являются частью коллекции, URL-адреса моделей в большинстве случаев могут быть разрешены из коллекции. Существуют и другие API, в которых модели и коллекции не совпадают, и вам необходимо самостоятельно установить URL-адреса (например, модель сеанса, которая не принадлежит коллекции).
Возможно, это также поможет сравнить документацию для выборки модели и коллекции:
Это также может помочь понять образ мышления Backbone: http://jonathanotto.com/blog/backbone_js_for_the_everyman.html