因爲我來自傳統的Web開發背景,使用ASP.Net,甚至服務器端MVC,所以忍受着我。我正在嘗試使用Backbone.js構建一個高度交互式的單頁面應用程序,以幫助組織我的JavaScript代碼並構建UI。如何使用骨幹處理單頁面應用程序的UI狀態
我遇到了一些概念問題,或者構建我的UI組件的方法,並決定如何處理某些方面。我將使用這個過於簡單的屏幕截圖作爲我的問題和討論的基礎。
讓我們用一個 「TO-DO」 應用爲例(當然)的用戶界面非常簡單。我有以下的「部件」 ......
- 結果列表,顯示當前設置的待辦事項匹配當前選擇標準
- 的列表,我的任務列表(個人,工作,博客項目)
- 截止日期過濾器(今天,明天,本週,下週)
- 的標籤(錯誤,功能,理念的名單,跟蹤)的列表
- 搜索框
所需的功能
- 更新的結果,只要任何的搜索條件的變化(選擇列表中,選擇一個適當的數據,選擇一個或多個標籤,輸入搜索文本等)
- 用戶可以編輯,添加和刪除列表。 (在這個模擬中沒有真正顯示)
- 用戶可以編輯,添加和刪除標籤。 (在這個模擬中沒有真正顯示)
- 用戶可以編輯,添加和刪除待辦事項。 (不是真的在此模擬了出)
數據模型
有多種型號,我確定的是「數據」相關。這些很容易識別。
- 待辦事項(代表一個待辦事項)
- ToDoCollection(代表待辦事項的集合)
- TodoList的(代表一個待辦事項列表)
- ToDoListCollection(代表待辦事項列表的集合)
- 標籤(代表一個標籤)
- TagCollection(代表標籤的集合)
如何存儲UI狀態?
這是我遇到麻煩的地方。我想要顯示當前選中我的菜單中的哪些項目(左側)。我可以肯定地聽取事件,並在選中項目時添加一個「選定」類,但我也有規則,例如「一次只能選擇一個列表」,但可以選擇「任意數量的標記」一次。另外,由於「待辦事項列表」菜單和標籤菜單是動態的,因此它們已經與ToDoListCollection和TagCollection模型相關聯。它們根據這些「數據模型」的狀態呈現。
那麼,我如何處理這個UI狀態管理所有這些不同的視圖使用骨幹?我很欣賞任何想法或建議。
謝謝!
凱文,這是一個不同的問題。如果你能以一種新的方式解決這個問題並提出問題,那將有助於人們回答你。 – 2011-06-10 17:14:30