我对backbone.js有点陌生,我正在努力获取具有belong_to关系的集合。
我想获取用户列表(users/GET),并且我想显示所有用户,但带有belongs_to关联。
例如显示用户的公司名称。有人知道解决办法吗?
我正在将 Ruby on Rails 3 与 CouchDB 结合使用
用户控制器
def index
User.all
end
骨干集合
class UserCollection extends Backbone.Collection
url: ->
app.routes.users_url
model: User
骨干模型
class User extends Backbone.Model
idAttribute: '_id'
defaults: {
"email": null
"mobile": null
"loc": null
}
url: ->
app.routes.users_url + '/' + (@id || '')
我想这样显示公司名称...
%script{:id => "user-resource-template", :type => "text/template"}
%td= check_box_tag "select", 1, false, :class => "checkbox", "data-id" => raw("<%= _id %>")
%td <%= name %>
%td <%= email %>
%td <%= company.name %>
Backbone.js 似乎不支持关系,因为在官方文档 http://documentcloud.github.com/backbone/#Model.
不过,一切并没有丢失,有一些 Backbone 插件添加了对关系的支持,例如骨干关系型 https://github.com/PaulUithol/Backbone-relational or 韧带.js https://github.com/dbrady/ligament.js。我还没有测试过它们,但骨干关系似乎相当活跃。
Update
要延迟加载集合并防止每个关系一次获取,请参阅fetchRelated
中的方法骨干关系模型 https://github.com/PaulUithol/Backbone-relational#backbone-relationalmodel:
从模型中引用的服务器获取模型
属性,但尚未找到/创建。这个可以用
专门针对延迟加载场景。
默认情况下,将为每个附加模型触发单独的请求
这是从服务器获取的。但是,如果您的服务器/API
支持它,您可以通过以下方式在一个请求中获取一组模型
为您调用 fetchRelated 的关系指定 collectionType。
collectionType 应该有一个被覆盖的
url(models) 方法,允许它构造一个 url
对于一系列模型。请参阅顶部的示例主干.关系选项 https://github.com/PaulUithol/Backbone-relational#backbone-relation or 骨干美味 https://github.com/PaulUithol/backbone-tastypie/blob/master/backbone_tastypie/static/js/backbone-tastypie.js#L79举个例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)