2
我正在使用devise,rails with backbone。我所有的骨干路线都运行良好。但是应该由rails呈现的非骨干路由(如/ accounts/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;
};
}
};
这又是触发我回家的路线。
“”骨干路由不应该是globbing /帐户/登录,但它是。
有一点调试显示/ 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;
},
任何建议码?
'/ accounts/login'是普通链接还是AJAX?它如何被访问? –
是的。它是一个传统的链接,没有ajax。 – user689541
它返回什么页面? Backbone路由是否被触发? –