这是 Derick Baileys 博客(Backbone.Marionette 的创建者)的引述:
但是路由器永远不应该实例化视图并直接使用 jQuery 操作 DOM 或将视图放入 DOM
但我一直看到这样的代码:
var Router = Backbone.Router.extend({
routes: {
"":home
},
home: function(){
// instance of a view object in a router
var homeView = new HomeView({model:model});
// do something with homeView
})
尽管它被广泛使用,但这可以被认为是反模式吗?从我的角度来看,将定义与对象的实例化分开是一个好主意(稍后调用new HomeView() )。但这是否可以在路由器中找到?