我想要一个骨干视图,这是我的导航出现在所有路线中。这样做的最佳方式是什么?
理想情况下,我想要一条匹配所有给定路线的路线,然后启动我的“home”功能,创建导航,如下所示:
routes: {
"*" : "home",
"addnames" : "addNames"
},
答案 0 :(得分:1)
虽然Deeptechton在评论中100%正确,但有很多合法的时间,有人可能希望他们的路线触发某些常见逻辑或访问某些常见对象(如工具栏)。
路由会在命中时触发“路由”事件,所以如果你需要做的就是触发逻辑,一个简单的方法就是:
router.on('route', functionThatDoesWhateverYouWantToDoOnEveryRoute);
如果您需要视图本身可以访问公共对象,那么最好的办法是将所有路径视图从基本RouteView扩展(并将对象放在那里)。如果你想获得硬核(但很可能这是错误的方法),你甚至可以覆盖其中一个核心Backbone路由器方法,并使用以下方法从内部调用原始版本:
Backbone.Router.prototype.methodName.apply(this, arguments);
希望有所帮助。