2

我只開始使用Spine.js,用戶真的很開心。 有誰知道Spine是否處理來自服務器響應的相關對象?下面的例子。 如果確實如此 - 太棒了 - 如果不是的話?那麼如何做到這一點的任何建議將是偉大的!由於Spine JS模型:Spine如何處理包含相關模型記錄的服務器響應?

模式

class User extends Spine.Model 
    @configure 'User', 'Name' 
    @hasMany 'friends', 'models/Friend' 
    @extend Spine.Model.Ajax 

class Friend extends Spine.Model 
    @configure 'Friend', 'User_id' 
    @belongsTo 'user', 'model/User' 
    @extend @Local 

服務器響應用戶的更新
{"user":{"name":"John Brilliant", "friends":[{"user_id":1},{"user_id":2}] }}

所以,當脊柱收到該響應,它應該更新用戶和用戶朋友因爲相關模型?

回答

0

查看Spine附帶的relation.js。 http://spinejs.com/docs/relations

但是,我注意到嵌套資源存在一些問題(使用/ users/1/friends等創建和更新朋友等)。 檢查http://groups.google.com/group/spinejs/browse_thread/thread/6a5327cdb8afdc69?tvc=2瞭解更多信息。

如果用戶將永遠是當前登錄的用戶,我建議不要在2之間創建關係。只有您的服務器需要了解多個用戶。您的客戶端應用程序應該假定所有操作/模型/記錄都被限制爲當前登錄的用戶。在服務器端,只需檢查用戶是否已登錄,如果是,只返回當前用戶的朋友。 (否則重定向到登錄頁面)

假設朋友3屬於用戶2.如果用戶1登錄並且他請求朋友,服務器將只返回朋友1和2.如果用戶2登錄,它將僅返回朋友3.

不要忘記使用當前用戶在節目中,創建,更新和刪除操作,以及:如果您需要的用戶的信息只是讓像在服務器上的措施p

「/用戶/當前'並返回你需要的信息。您可以將其存儲在用戶模型中,然後您可以使用它來更新用戶的名稱等。

+0

因此,爲了闡明SpoBo,如果我的用戶模型接收到一個包含User和Friend對象的響應對象,Spine將更新User和有相關數據的朋友模型?並且當用戶模型通過Spine Ajax進行更新時,它是否會在一個請求中同時發送User和Friends對象到服務器? – 2012-02-17 00:45:48

+0

如果我的用戶模型接收到一個包含用戶和朋友對象的響應對象,Spine將用相關數據更新用戶和好友模型 - Spine默認是這樣做的。當通過Spine Ajax更新用戶模型時,它是否會在一個請求中同時將用戶和朋友對象發送到服務器? - 我不這麼認爲。至少我不能工作。相反,y服務器使用嵌套路由逐一更新朋友,並對Spine進行了一些修改以支持該工作流程。但告訴我。你爲什麼使用用戶對象? – SpoBo 2012-02-17 13:42:12

+0

而且,如果服務器repsonse的格式如上所述(請參閱原始問題)?問題模型是理論上的,儘管我確實使用了用戶對象,但大多數情況都是通過一些解耦的,而我並沒有構建API。感謝您的幫助btw – 2012-02-17 14:32:23

相關問題