Я начинаю использовать backbone.js, и я в замешательстве, почему вы можете указать URL-адрес по-разному. Кажется, что URL-адрес коллекции не используется везде, кроме функции url-модели. Так есть ли какой-либо вред только для установки urlroot на всех моих моделях и никогда не использовать URL-адреса коллекции?Почему у BackboneJs Collections есть URL?
ответ
Нет никакого вреда, вы можете отлично работать на уровне модели, выполняя обновления, удаляя и т. Д., Но когда вы хотите ПОЛУЧИТЬ набор моделей с сервера, все это сразу пригодится, чтобы сделать что-то вроде этого ,
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 предоставляют способы сделать это. С успокоительными маршрутами, вы наиболее часто нуждаетесь обновление/извлекает так:
GET /students
[{name: "...", ...}]
GET /students/1
{name: "..."}
Как вы наблюдали, что URL-адрес похож, но в большинстве случаев обработки ответа коллекции и модели выборки, будет выглядеть по-разному. Поскольку концептуально модели являются частью коллекции, то URL-адреса модели в большинстве случаев могут быть разрешены из коллекции. Существуют и другие API-интерфейсы, в которых модели и коллекции не совпадают, и вам нужно самостоятельно установить URL-адреса (например, модель сеанса, которая не принадлежит коллекции)
Возможно, это также помогает сравнить документацию по модели и сбор выборки:
Это также может помочь понять Backbone способ мышления: http://jonathanotto.com/blog/backbone_js_for_the_everyman.html
Если бы эта коллекция не предполагала содержать все экземпляры модели, как бы узнать, какие модели будут выбраны? Например, если бы у меня была студенческая модель, студенческая коллекция и модель класса, в которой была коллекция студентов, мне просто нужно было вручную установить URL-адрес для каждой коллекции студентов как-то относительно идентификатора модели класса? – bdwain
Поскольку каждое свойство в Javascript может быть значением или функцией, для этого конкретного примера вы можете использовать функцию «calculete» для маршрута студенческих коллекций класса. что-то вроде url: function() {retunr "students" + class.id;} таким образом, когда вы инициируете свой класс, вы можете вызвать this.class.students.fetch(); –