2015-08-21 6 views
1

Как я могу переписать функцию fetch() функции Backbone Collection, чтобы получить определенную часть в моем JSON?Магистральная коллекция ошибочна. Модели

JSON я получаю выглядит следующим образом:

{ 
    "success":true, 
    "data":[ 
     { 
     "id":1, 
     "title":"asdf", 
     "link":"http://www.xx.cc/image/asdf/", 
     "date":1439993443000 
     }, 
     { 
     "id":2, 
     "title":"qwer", 
     "link":"http://www.xx.cc/image/qwer/", 
     "date":1439993091000 
     } 
    ] 
} 

И мой простой Backbone Сценарий:

var myCollection = Backbone.Collection.extend({ 
    url: 'url.to/my/rest/' 
}); 

myCollection.fetch(); 
console.log(myCollection); 

Проблема здесь в том, что сбор я получаю получил длину 1 1 модель в нем. Когда я регистрирую эту коллекцию и открываю «n -> models -> 0 -> attributes -> data», я нахожу все свои объекты в массиве данных JSON.

Но мне нужны объекты «data» -array как модели в моей коллекции. До сих пор я не нашел решения этой проблемы, чтобы у кого-то была правильная идея для меня?

ответ

1

Поставка Ваше описание коллекции объект с parse функции, как описано в the docs:

var myCollection = Backbone.Collection.extend({ 
    url: 'url.to/my/rest/', 
    parse: function(data) { 
     return data.data; 
    } 
}); 

Этот метод извлекает соответствующую часть из ответа сервера и заполнить коллекцию, основанную на этой части.

+0

спасибо, сэр! иногда я мог ударить головой в стол с такими простыми обходными решениями. – Sacer

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