Backbone.js主细节场景
我在backbone.js中实现了一个经典的主细节场景 目前,我不关心backbone.js的历史和导航部分,所以跳过它Backbone.js主细节场景,backbone.js,Backbone.js,我在backbone.js中实现了一个经典的主细节场景 目前,我不关心backbone.js的历史和导航部分,所以跳过它 我有一个GridView,其中所有模型都是从rest服务获取和显示的 我有一个DetailView(模式窗口),其中显示了从网格中选择的特定模型,其中显示了主网格视图中显示的更多字段 我已实施: 连接所有主干视图和路由器的主要应用程序 应用程序在加载的文档上初始化 主主干路由器(更像是一个经典的“控制器”),负责: 创建和销毁视图 获取和发布数据 向视图传递数据 协调
- 我有一个GridView,其中所有模型都是从rest服务获取和显示的
- 我有一个DetailView(模式窗口),其中显示了从网格中选择的特定模型,其中显示了主网格视图中显示的更多字段
- 连接所有主干视图和路由器的主要应用程序
- 应用程序在加载的文档上初始化
- 主主干路由器(更像是一个经典的“控制器”),负责:
- 创建和销毁视图
- 获取和发布数据
- 向视图传递数据
- 协调意见和活动
我不完全理解在主干网中执行操作的最佳方式。首先,我建议在“gridView”集合查询中返回模型的完整详细信息。这就解决了“收集断开”的问题 尽管您不必执行完整的集合加载—比方说,对整个集合执行完整加载是行不通的—细节太大了,例如,您应该能够将同一个模型从集合传递到详细视图中,测试它是部分加载还是完全加载,并为模型发出“fetch()”,返回完整数据-由于这与集合中的模型相同,因此应该对其进行更新。这有意义吗 另外,对于局部视图,我建议重用视图,并在视图中编写一个函数,允许您交换模型,特别是如果您正在设计仅激活一个局部视图 因此,总而言之:
- 在应用程序启动时,加载一个gridView和一个detailView
- 重构detailView以允许在其上设置模型。(detailView.setModel(…)
- 当用户想要查看模型的详细信息时,使用上述函数将该模型传递到detailView
- 如果模型未完全加载,则setModel方法可以转到并获取()其余的数据。您可以测试仅在完全加载时才存在的特定属性,或者在模型上设置属性以指示其是否已完全加载
- 如果发现自己丢失了事件,请尝试在render()函数末尾调用delegateEvents(),以便重新绑定事件
- 由于gridView集合和detailView中都使用了相同的模型,因此假设您正确响应了更改事件,那么所有内容都应该同步