因为我来自传统的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