2014-03-28 23 views
0

我有一個Backbone應用程序從API獲取帖子的集合。我想知道帖子的順序在後端發生了什麼變化,我認爲我可以用sort事件做到這一點,但奇怪的是我在渲染帖子的視圖中向該事件添加了一個偵聽器,我發現每次獲取集合時都會觸發它,而不管帖子的順序是否更改。發現收集的順序在Backbone中發生變化

我錯過了這裏的東西?

有沒有辦法檢查收集後集合的順序是否已經改變?

謝謝!

回答

1

我認爲你採取了錯誤的做法。無論服務器返回的訂單是什麼,您都應該在客戶端中訂購集合。如果我是正確的,Backbone的哲學是操縱客戶端上的一組JSON數據。將服務器視爲數據庫/服務層,並使用客戶端中集合的排序功能。

我不明白你的意思是'帖子的順序在後端被改變'。如果您想要客戶端應用程序中的任何字段排序的帖子,請使用集合比較器屬性。

http://documentcloud.github.io/backbone/#Collection-comparator

+0

問題是帖子的順序是由使用其他應用程序的用戶給出的。也就是說,有一個管理應用程序,編輯可以在其中編寫帖子,更新它們並可能更新帖子的順序,並且我正在處理的應用程序必須顯示管理界面提供的帖子。我想知道訂單是否已經改變,知道我必須重新呈現我的觀點。 –

+0

霍拉帕特里夏。然後,我會嘗試從後端獲取排序信息到Backbone並在那裏使用它,而不是試圖猜測發生了什麼。如果管理員應用更新訂單,則該訂單必須存儲在某個地方。它是像'DisplayOrder'或類似的後場?然後將該字段發送給客戶端,並在模型上偵聽「更改」事件。如果該排序字段被更改,則會引發更改事件。 – CharlieBrown

+0

完美的作品,謝謝!我添加了一個'訂單'字段來發布並使視圖收聽'change:order'事件。我猜'排序'事件只與在骨幹端進行排序有關。 –

相關問題