Criar uma coleção a partir de dentro de uma coleção
-
21-12-2019 - |
Pergunta
Eu tenho uma coleção, que quando obtidos obtém um json e coloca na coleção:O formato JSON é:
[
{
name: 'Hello',
age: '22',
bio: [{
interest: 'soccer',
music: 'r&B'
}]
}
]
Eu quero fazer outra coleção de bio (sem buscar novamente).O motivo é que eu quero para o acesso tanto nome, a idade e a bio e uma função de análise só pode ter um retorno?
var user = new Backbone.Collection.extend({
url: '/user',
parse: function (response) {
//I want both of this?
//return response;
return response.bio;
}
});
Eu estou passando essa coleção no sucesso função de busca em dois diferentes pontos de vista.
//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});
}
})
Qual seria a melhor forma de combater isso?Posso clonar uma coleção e só tem em bio-lo?
Solução
Eu geralmente resolvido este instanciando o sub-coleção 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,
// ...
});
Outras dicas
Eu acho que isso é o que você está procurando : Backbone Associações.Ter um olhar para os tutoriais e exemplos lá.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow