Вложенный JSON для базовой модели

Я совершенно новичок в backbone.js и в настоящее время борется за правильное структурирование данных. У меня JSON, что мне нужно сопоставить с базовой моделью/коллекцией.

Каким образом можно подойти к таким типам вложенных данных? resultSet должен быть набором моделей "результата", но как включить другие данные, такие как "resultURL", "clearKeywordUrl" и т.д.?

"resultUrl":"",
"clearKeywordUrl":"",
"resultTotal": 10,
"nextPageUrl" : ""
"resultSet":[
{
 "id":"",
 "title":"",
 "subTitle":null,
 "summary":""
}]
2 ответа

Если я правильно понимаю, вы хотите, чтобы содержимое результирующего набора было вашим коллекционным моделями, а другие ключи - это какая-то "мета-информация" для вашей коллекции? Вы можете переопределить метод parse вашей коллекции, чтобы сохранить метаданные в объекте коллекции и использовать только контент resultSet в качестве своих моделей: (непроверенное концептуальное предложение)

var coll = Backbone.Collection.extend({
 parse: function(data){

 this.resultUrl = data.resultUrl;
 this.clearKeywordUrl = data.clearKeywordUrl;
 this.nextPageUrl = data.nextPageUrl;

 return data.resultSet; //use only the resultSet content as models

 },

 initialize: function(options){
 console.log("resultUrl", this.resultUrl);
 }
});


У вас должна быть модель с именем Result And Result имеет следующие атрибуты:

resultUrl: '',
clearKeywordUrl: '',
...

И эта модель имеет поле под названием resultSet, которое будет собирать результаты. И определите отдельную модель с именем resultSetItem с некоторыми значениями по умолчанию.

Если вы получите некоторое время, ознакомьтесь с вступительным видео от Томаса Дэвиса в Учебниках по основам

licensed under cc by-sa 3.0 with attribution.