2013-05-28 6 views
1

Я начинаю использовать backbone.js, и я в замешательстве, почему вы можете указать URL-адрес по-разному. Кажется, что URL-адрес коллекции не используется везде, кроме функции url-модели. Так есть ли какой-либо вред только для установки urlroot на всех моих моделях и никогда не использовать URL-адреса коллекции?Почему у BackboneJs Collections есть 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. 
+0

Если бы эта коллекция не предполагала содержать все экземпляры модели, как бы узнать, какие модели будут выбраны? Например, если бы у меня была студенческая модель, студенческая коллекция и модель класса, в которой была коллекция студентов, мне просто нужно было вручную установить URL-адрес для каждой коллекции студентов как-то относительно идентификатора модели класса? – bdwain

+0

Поскольку каждое свойство в Javascript может быть значением или функцией, для этого конкретного примера вы можете использовать функцию «calculete» для маршрута студенческих коллекций класса. что-то вроде url: function() {retunr "students" + class.id;} таким образом, когда вы инициируете свой класс, вы можете вызвать this.class.students.fetch(); –

0

В 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

 Смежные вопросы

  • Нет связанных вопросов^_^