用id获取骨干模型

时间:2011-12-05 20:49:39

标签: backbone.js

我有一个项目列表,点击它们会带来用户的详细信息(另一个视图)。 在我的路由器中,我有这样的路线:

'details/:id'   :   'details',

现在,在详细功能中,我应该获取我的对象(获取将触发新的视图渲染)。 但是我应该怎么做才能将骨干附加项ID发送到model.url? 我现在有两种方式:

在抓取时动态创建网址:

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

这样的事情:

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

但我怀疑这是正确的解决方案。怎么样? model.urlRoot和model.url()之间有什么区别。

2 个答案:

答案 0 :(得分:34)

正确的答案是使用模型的urlRoot属性。如果已设置,则模型ID将在获取时附加到此URL。所以它可能看起来像这样(对象与我的第一篇文章中的名称不同,但想法是相同的 - 通过id获取单个模型):

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

在途中:

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

答案 1 :(得分:0)

看看这里, 它完美地解释了获取单个模型的最佳解决方案之一

您将使用函数将url放在一起作为模型属性。使用.isNew() 至少这就是我现在已经做了一段时间了,我相信这比每次你需要的时候在fetch中建立一个url更好。

How do I fetch a single model in Backbone?