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