2

我有點不確定如何爲Backbone.js中的登錄/註銷控件設置功能。Backbone.js體系結構用於登錄和註銷功能

這是我在想什麼,但我不知道這是否正常,如果有問題,這種架構:

  • Model是當前用戶。如果模型在執行fetch()時得到HTTP 404響應,則「當前用戶」應該是匿名用戶。如果不是,則Model保存當前用戶的信息。
  • View
    • 如果當前用戶是「匿名」,它顯示了一個用戶名和密碼輸入框;和「登錄」按鈕。
    • 如果當前用戶是有效用戶,則該視圖將顯示當前用戶的用戶名和「註銷」按鈕。

我不知道做什麼用的模型做的時候「登錄」和「註銷」按鈕被按下。應該通過模型的fetch()功能完成登錄和註銷操作,還是這些操作應該觸發不同的POST請求,其成功的結果要麼填充Model,要麼要求Model做另一個fetch()

任何輸入表示讚賞,非常感謝!

回答

1

這可能是一個有點意外,以你問什麼,但這是我是如何把它關閉:

我不知道爲什麼你需要的模型本身,我感到困惑你如何使用它。因此我無法用腦海中的「模型」來形容我的答案。

因此,這裏是我是如何做的:

在視圖:只是文本框進行登錄/註銷。

在點擊「登錄」發送POST請求與用戶名/密碼的服務器(希望不是以明文形式:)

如果服務器的響應是200變化window.location到要看看還有顯示目標頁面「無效的用戶名/密碼」(當然,應用程序中的「下一頁」或任何其他頁面應檢查用戶是否已登錄。如果沒有,則顯示登錄頁面)。

這是最簡單的解決方案恕我直言。我不確定爲什麼你需要爲用戶提供模型?這是「之後」登錄?然後您可以生成並保留它,或者將它作爲上面200響應的一部分發送。但該模型不會在頁面更改中持續存在。可以說,更好地在'下一頁'上重新創建模型。 (我假設頁面發生變化,而不是頁面加載,如$.load - 如果是後者,那麼您可以隨時重複使用該模型)。

希望這是有道理的。如果沒有,請你澄清模型的意圖,也許我可以相應地更新我的答案。