1
我寫使用骨幹+軌的應用程序。
該應用程序允許用戶創建門票,並顯示這些票的實時使用實時服務pusher所有其他用戶。同步處理資料與骨幹推
我的問題是,當用戶創建一張票我把它添加到集合:
addTicket: function(newTicketData) {
var newTicket = new app.Ticket(newTicketData);
this.collection.add(newTicket, {merge: true});
newTicket.save(null, {
wait: true,
success: this.addTicketSuccess,
error: this.addTicketError
});
},
推杆監聽器代碼:
channel.bind('new_ticket', function(data) {
var ticketDataObj = jQuery.parseJSON(data.content);
app.ticketsView.addTicket(ticketDataObj);
});
在這一點上,新機型具有CID但不是ID從數據庫中,這可能會在addTicketSuccess
回調獲得。 另一方面,服務器在create
動作中發送推送器信號,該動作發送具有其ID,但沒有ID的新票券。
結果是集合中的兩個不同的模型,其表示相同的對象,一個具有CID和其他與ID。我意識到比賽條件,並尋找好的和強大的解決方案。
謝謝!
是的,我知道。我的問題是主幹應用程序接收對象兩次 - 一次在'save'回調中,一次通過'pusher'信號(顯然沒有cid)。 這就是爲什麼我有兩個對象 - 一個用__cid__,另一個用__id__。 重要的事情 - 不可能知道哪個是首先執行的 - **保存回調**或**推送器信號回調**。 – guyaloni
你能用推送器代碼更新你的問題嗎? –
剛剛做過,如果您需要更多信息,請告知我。 – guyaloni