Backbone.js 木偶区域与布线
我正在使用LayoutView以表格形式显示集合。当用户单击tr时,我将CompositeView替换为使用相同区域显示详细信息的ItemView。除了“后退”按钮的功能被破坏外,其他功能都可以正常工作。是否有办法捕获返回事件并切换视图Backbone.js 木偶区域与布线,backbone.js,marionette,backbone-views,Backbone.js,Marionette,Backbone Views,我正在使用LayoutView以表格形式显示集合。当用户单击tr时,我将CompositeView替换为使用相同区域显示详细信息的ItemView。除了“后退”按钮的功能被破坏外,其他功能都可以正常工作。是否有办法捕获返回事件并切换视图 或者我应该使用两个视图并传递模型id,然后重新绘制模型?但问题是额外的请求,我会丢失表的筛选和排序值,除非我使用本地存储。包含更多代码会更好,但无论如何,我会尝试为您的问题提供一些指导 为了避免两次获取数据,您可以在“父”组件中保留一个公共对象,例如在路由器中
或者我应该使用两个视图并传递模型id,然后重新绘制模型?但问题是额外的请求,我会丢失表的筛选和排序值,除非我使用本地存储。包含更多代码会更好,但无论如何,我会尝试为您的问题提供一些指导 为了避免两次获取数据,您可以在“父”组件中保留一个公共对象,例如在路由器中
var theObject;
var router = Marionette.AppRouter.extend({
routes: {
"routeA/:id": "goToRouteA",
"routeB/:id": "goToRouteB"
},
goToRouteA: function(id) {
MyRegion.show(new myLayout({
model: this._getCommonObject(id)
}));
},
goToRouteB: function(id) {
MyRegion.show(new myLayout({
model: this._getCommonObject(id)
}));
},
/*Return the common object for the views*/
_getCommonObject: function(id) {
theObject = (theObject && theObject.get('id') == id) ? theObject : MyApp.request('getTheObject');
return theObject;
}
});
通过这种方式,可以在不丢失信息的情况下保持对同一对象的引用
您只需确保在不需要删除对象以避免保留旧信息时删除该对象,例如区域关闭事件。能否附上一些代码?