2012-06-29 138 views

回答

2

我认为这是优先考虑的问题。如果你正在用巨大的路线做一个巨大的应用程序,那么分割你的路由器是明智的。对于只有一个大型路由器的小型应用程序来说很好。

如果决定有多个路由器,请确保您没有冲突的路线,所以不会有任何意外行为或错误。

因此,与requireJS:我认为最好的办法是在它自己的文件中像这样

define([blaa, blaa], function(Blaa, Blaa) { 

    var SubRouter1 = Backbone.Router.extend({ 

    // work your routing magic here, remember to make no conflicting routes 

    }); 

    return SubRouter1; 
}); 

来定义每个路由器当你拥有所有需要的路由器设置,您可以在app.js

捆绑起来
define([...,'subrouter1', 'subrouter2', ... , 'subrouterN', ...], 
function(..., SubRouter1, SubRouter2, ... , SubRouterN, ...) { 

    // work your app magic here 

    initialize: function() { // or wherever you start your application 
    subrouter1 = new SubRouter1(); 
    subrouter2 = new SubRouter2(); 
    ... 
    ... 
    subrouterN = new SubRouterN(); 
    Backbone.history.start(); // remember to start the history 
    }, 

    // maybe work some more magic? 
}); 

我从来没有做过这样自己,但我不明白为什么如果保持路线从冲突的它不会工作。希望这会为你清除一些东西。