要學習骨幹我創建一個類似Twitter的應用程序。所以你知道Twitter每N秒發送一次GET請求到服務器來檢查新的推文。如果有新的推文,它會創建隱藏的元素,並顯示帶有「N new Tweets」的按鈕。如果您點擊它,它會顯示隱藏的元素,顯示新的推文。 但是,添加新推文時,行爲會有所不同:推文是可見的。您不必點擊按鈕即可看到它。骨幹collection.create()不返回更新的模型
我已經爲隱藏的推文做了第一部分。對於發佈新的鳴叫,並將其顯示照片直接的部分,我認爲這將是很容易通過創建一個新的模式,調用collection.create(),並觸發正確的情況下,喜歡的事做:
var newTweet = new Tweet();
newTweet.set(/* set the attributes here. Some attributes are missing, because they are calculated server side */);
var created_tweet = this.collection.create(newTweet, { silent: true, wait: true }); // I choose silent=true because the add event on my collection is in charge of adding the new hidden tweets when there are new ones on the server
this.collection.trigger("posted_new_tweet", created_tweet);
然後,我的收藏訂閱了「posted_new_tweet」事件,因此每次用戶發佈新推文時,都會調用我的收藏的特定方法。 這種方法工作正常,直到我得到錯誤,因爲變量created_comment在觸發器中傳遞:它不是「完整的」。我的意思是模型有一些屬性,如「id」或*「created_on」*,這些屬性是未定義的。這些屬性是計算服務器端,但我認爲,如果我通過wait = true,它會等待並更新我的模型與服務器給出的響應(當一個POST POST請求是對服務器,它返回在json中創建新模型)
我的模型不應該具有服務器端屬性嗎?這樣的事情是否正確?如果不是,我怎麼能有兩種不同的方法來顯示集合視圖?
謝謝!
這是正確的:)謝謝! – fiunchinho 2012-04-06 19:12:27
我相信在Backbone的後期版本中,參數現在是'nextModel'和'response'。 – IanS 2016-09-02 14:21:09