我正在使用装备,带有主干的导轨。我所有的骨干路线都运转正常。但是应该由rails呈现的/ backbone / login之类的非骨干路由正在与骨干路由器进行全局化。
SS.Routers.ApplicationRouter = Backbone.Router.extend({
initialize: function() {
this.el = $("#content");
},
routes: {
"": "home"
},
"home": function () {
console.debug("Got home request");
var view = new SS.Views.Home();
this.el.empty().append(view.render());
}
});
/ accounts / login的实际请求/响应来自rails日志。但是Backbone home root会在之后被触发,我的主页会被渲染。
我的布局有
$(function () {
SS.init();
});
这
window.SS = {
Models: {},
Collections: {},
Views: {Providers: {}},
Routers: {},
init: function (data) {
console.debug("Initializing Backbone Components");
new SS.Routers.ApplicationRouter();
new SS.Routers.ProvidersRouter();
if (!Backbone.history.started) {
Backbone.history.start();
Backbone.history.started = true;
};
}
};
再次引发我的回家路线。
“”骨干网中的路由不应该是通配/帐户/登录,但确实如此。
一点点调试显示/ accounts / login被“”吞噬,因为片段是一个空字符串。
在骨干路由不匹配的所有情况下,片段都是空字符串。
来自主干0.9.2的代码
loadUrl: function(fragmentOverride) {
var fragment = this.fragment = this.getFragment(fragmentOverride);
var matched = _.any(this.handlers, function(handler) {
if (handler.route.test(fragment)) {
console.debug(handler);
console.debug(fragment);
handler.callback(fragment);
return true;
}
});
return matched;
},
有什么建议吗?
答案 0 :(得分:0)
向链接添加一个类('passThrough')或'data-passThrough = true'属性。在路由器中捕获此类/属性并返回true,以便Backbone停止处理它,浏览器将其视为常规链接。