2014-01-10 2 views
0

У меня есть коллекция, которая когда неправдоподобным получает JSON и помещает в коллекции: Формат JSON является:Создать коллекцию из внутри коллекции

[ 
    { 
    name: 'Hello', 
    age: '22', 
    bio: [{ 
     interest: 'soccer', 
     music: 'r&B' 
    }] 
    } 
] 

Я хочу сделать еще одну коллекцию из био (не извлекая еще раз). Причина в том, что я хочу получить доступ к имени, возрасту и биографии, а функция синтаксического анализа может иметь только один возврат?

var user = new Backbone.Collection.extend({ 
    url: '/user', 

    parse: function (response) { 
    //I want both of this? 
    //return response; 
    return response.bio; 
    } 
}); 

Я передаю эту коллекцию на функцию успеха извлечения в два разных вида.

//Controller File.... 
............. 

mycollection.fetch({ 
    success: function() { 

    //Details View wants response 
    PrimaryLayout.main.show(new detailsView{collection: mycoll});  

    //Bio View wants response.bio 
    PrimaryLayout.body.show(new bioView{collection: mycoll}); 
    } 
}) 

Что было бы лучшим способом решить эту проблему? Могу ли я клонировать коллекцию и просто иметь в ней био?

ответ

1

Я вообще решил это инстанцировании суб-коллекции в parse:

var User = Backbone.Model.extend({ 
    parse: function(json) { 
     // instantiate the collection 
     json.bio = new Backbone.Collection(json.bio); 
     // now person.get('bio') will return a Collection object 
     return json; 
    } 
}); 

var Users = Backbone.Collection.extend({ 
    model: User, 
    // ... 
}); 
0

Я думаю, что это то, что вы ищете: Backbone Associations. Посмотрите учебные пособия и примеры там.

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