3
我正在用Rails REST后端编写我的第一个Backbone.js应用程序,而令我困惑的一件事是模型之间的关系。加载与Backbone.js的模型关系
我写的这个应用程序将有Ticket
和Client
作为模型。我也设置了Tickets
和Clients
集合。
事实证明,我有几千个客户,我不想将它们加载到内存中,而是我希望在票据引用它时懒惰地加载客户。
我试过一种非常幼稚的方法,显然不起作用,因为Model#fetch()
方法是异步的。
这里是我的票务模式到目前为止(在的CoffeeScript):
class Deputy.Models.Ticket extends Backbone.Model
initialize: ->
@fetchClient()
fetchClient: ->
@client = new Deputy.Models.Client()
@client.set id: @get('userid')
@client.fetch()
clientName: ->
first = @client.get('firstname')
last = @client.get('lastname')
"#{first} #{last}"
正如你可以想像,在clientName()
函数总是返回“未定义未定义”,因为取不返回调用时。
处理这种数据关系的正确方法是什么?请注意,我不介意你退后一步说我正在使用错误的方法,而是给我一些建议。
任何指针,文章,或任何其他将不胜感激。
感谢您的答复。然而,'Deputy.Models.clientName(lead)'是做什么的,它来自哪里? – kolrie 2012-02-12 01:45:52
没关系,我明白了! – kolrie 2012-02-12 01:48:24