我有一个项目列表,点击它们会带来用户的详细信息(另一个视图)。 在我的路由器中,我有这样的路线:
'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()之间有什么区别。
答案 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更好。