默认情况下在Backbone中的所有路由中显示视图

时间:2012-10-26 01:16:44

标签: javascript html5 backbone.js

我想要一个骨干视图,这是我的导航出现在所有路线中。这样做的最佳方式是什么?

理想情况下,我想要一条匹配所有给定路线的路线,然后启动我的“home”功能,创建导航,如下所示:

routes: {
        "*" : "home",
        "addnames" : "addNames"

    },

1 个答案:

答案 0 :(得分:1)

虽然Deeptechton在评论中100%正确,但有很多合法的时间,有人可能希望他们的路线触发某些常见逻辑或访问某些常见对象(如工具栏)。

路由会在命中时触发“路由”事件,所以如果你需要做的就是触发逻辑,一个简单的方法就是:

router.on('route', functionThatDoesWhateverYouWantToDoOnEveryRoute);

如果您需要视图本身可以访问公共对象,那么最好的办法是将所有路径视图从基本RouteView扩展(并将对象放在那里)。如果你想获得硬核(但很可能这是错误的方法),你甚至可以覆盖其中一个核心Backbone路由器方法,并使用以下方法从内部调用原始版本:

Backbone.Router.prototype.methodName.apply(this, arguments);

希望有所帮助。