3
{ 
    "code":"OK", 
    "message":"Success", 
    "errorFlag":"N", 
    "errors":null, 
    "data": { 
     "images": { 
      0: img0, 
      1: img1, 
      2: img2 
     } 
    } 
} 

Это ответ REST, и я хотел поместить записи «изображений» в свою коллекцию и рассматривать каждую отдельную запись в качестве моделей.BackboneJs: создание нескольких моделей в коллекции из вложенного объекта

var Image.Model = Backbone.Model.extend({}); 
var Image.Collection = Backbone.Collection.extend({ 
    model: Image.Model, 
    url: 'rest/url' 
}); 
var images = new Image.TestCollection(); 
images.fetch(); 

Как я могу сделать записи внутри «картинки» будут только модели коллекций изображений и поместить код, сообщение, ошибки и т.д. ключи для других моделей или коллекций?

спасибо.

+1

http://stackoverflow.com/questions/8782619/how-to-build-a-collection-model-from-nested-json-with-backbone-js –

ответ

2

Использование http://backbonejs.org/#Collection-parse

// server.js 
app.get('/api/data', function (req, res) { 
    var result = { 
     "code": "OK", 
     "message": "Success", 
     "errorFlag": "N", 
     "errors": null, 
     "data": { 
      "images": { 
       0: "img0", 
       1: "img1", 
       2: "img2" 
      } 
     } 
    }; 
    res.json(result); 
}); 

// client.js 
var Image = Image || {}; 
Image.Model = Backbone.Model.extend({ 
}); 

Image.TestCollection = Backbone.Collection.extend({ 
    model: Image.Model, 
    url: '/api/data', 
    parse: function(response) { 
     window.response =response; 
     var images= []; 
     for(var key in response.data.images){ 
      if(response.data.images.hasOwnProperty(key)){ 
       images.push(response.data.images[key]); 
      } 
     } 
     return images; 
    } 
}); 
var images = new Image.TestCollection(); 
images.fetch(); 

P.S. Как правило, плохая идея хранить данные в ключах.

+0

Спасибо, он работает. Почему это плохая идея хранить данные в ключах? В этом случае мы используем его только в функции parse. – Barry

+1

Это не правило, вырезанное из камня, но из моего опыта хранения ключей, особенно с использованием чисел в качестве ключей, используется PITA для управления данными (в моем случае подчеркивание - огромная помощь), плюс, если вы используете номера как ключи, как в вашем Например, вы не можете использовать точечную нотацию, например images.0. Таким образом, было бы лучше изменить изображения из {0: "img0", 1: "img1"} в [{"id": "0", "name": "img0"}, {"id": "1" , "name": "img1"}], но окончательное решение зависит от ваших потребностей. –

+0

Получил ваш момент, спасибо! – Barry

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