【发布时间】:2015-11-06 06:11:28
【问题描述】:
这是我的主干路由器的样子
define([
"jquery",
"underscore",
"backbone"
], function ($, _, Backbone) {
return Backbone.Router.extend({
routes: {
"overview": "overview"
},
overview: function () {
require([
"views/overview",
"models/user-collection",
"grid",
"spreadsheet"
], function (OverviewView, TestCollection, GridView, SpreadSheetView) {
// Data
var collection = new TestCollection();
// Main view
var view = new OverviewView({
el: "#page",
collection: collection
});
// Sub view #1
var gridView = new GridView({
el: "#backgridWrapper"
});
// Sub View #2
var spreadsheetView = new SpreadSheetView({
el: "#handsontableWrapper"
});
// Flow
collection.fetch({
success: function () {
view.render();
gridView.render();
spreadsheetView.render();
}
});
});
}
});
});
如您所见,有几个视图:
- 主视图
- 子视图 #1
- 子视图 #2
我对如何在 Backbone 中组织视图和子视图进行了大量搜索,但是它们都应该直接在视图定义中创建一个新的子视图实例,因此路由器只知道 Main查看...
所以问题是 - 在路由器而不是直接在视图构造函数中处理子视图是个好主意吗?
【问题讨论】:
标签: javascript backbone.js backbone-views