2013-04-03 102 views
1

我有一個簡單的應用程序,它顯示了recrods的列表,並且用戶也能夠通過id編輯關鍵記錄。 由於列表很大,我不會將其作爲整體抓取,而是部分通過Product.fetch(data: $.param(page: 1))Spine.js從服務器獲取AJAX記錄

後來,當有人試圖編輯記錄,我打電話Product.find(id)如果recrord已經與fetch預取,然後它工作正常,但是當記錄尚未取出,然後我有錯誤,如:"Product" model could not find a record for the ID "1152"

所以,問題是爲什麼find不執行ajax調用,以及如何使它執行它或者也許存在另一種解決方案?

回答

1

Spine.find只會查看已經加載的記錄。做一個Ajax請求不是find的功能。所以你必須試着去捕捉你的發現,當它發生這個錯誤時,你必須去抓取它。

id = 1152 

try 
    product = Product.find id 
catch err 
    Product.fetch(
    data: 
    id: id 
    processData: true 
) 
    # Try again after Product.refresh 

說實話,我覺得這是做一個笨的辦法,但它是脊柱是如何工作的?我寧願把它自動獲取,或者在找到至少不是拋出一個錯誤。

+3

我們正在努力改善Spines的查找和存在功能。沒有更多的錯誤拋出,並允許查找接受失敗條件的回調。 – aeischeid

+0

是的,我在github存儲庫中看到了這個。我很高興這將會改變。感謝您在脊柱中的所有工作。 – Michiel