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?

Foi útil?

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
scroll top