ti-enxame.com

buscar no modelo de backbone com id

Eu tenho uma lista de itens e clicar neles deve trazer os detalhes do usuário (outra visualização). No meu roteador, tenho uma rota para isso:

'details/:id'   :   'details',

Agora, na função de detalhes, devo buscar meu objeto (a busca ativará a nova renderização de exibição). Mas o que devo fazer para que o backbone anexe o ID do item ao model.url? 2 maneiras que eu tenho por enquanto é:

Crie um URL rapidamente ao buscar:

this.realty_object.fetch({url: SITE_PATH + 'blah/blah/' + id});

E algo assim:

this.realty_object
    .set({id : id}, {silent: true})
    .fetch();

Mas tenho dúvidas de que sejam as soluções corretas. Como deve ser? Qual é a diferença entre model.urlRoot e model.url ().

18
SET

A resposta certa é usar a propriedade urlRoot do modelo. Se estiver configurado, o ID do modelo será anexado a este URL durante a busca. Portanto, pode parecer com isso (os objetos têm nomes diferentes do que está no meu primeiro post, mas a idéia é a mesma - buscar modelo único por ID):

Group = Backbone.Model.extend({
    urlRoot: SITE_PATH + 'group/index',
});

E na rota:

this.group = new Group({id: id});
this.group.fetch();
34
SET

dê uma olhada aqui, explica perfeitamente bem qual é uma das melhores soluções para buscar modelos únicos

você usaria uma função para reunir o URL, como uma propriedade de modelo. usando o .isNew() pelo menos é assim que eu faço isso há algum tempo, acredito que é melhor do que criar um URL na busca toda vez que você precisar de algo.

Como obtenho um único modelo no Backbone?

0
Sander