나는 백본과 함께 장치를 사용하고 있습니다. 모든 백본 경로가 정상적으로 작동합니다. 그러나 레일스로 렌더링해야하는/accounts/login과 같은 비 백본 경로는 백본 라우터로 묶여 있습니다.백본 라우터 globbing 비 백본 경로
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에 대한 실제 요청/응답은 레일스 로그에서 발생합니다. 그러나 백본 홈 루트가 나중에 실행되고 내 홈 페이지가 렌더링됩니다.
다시는 내 집에 경로를 유발하는
$(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이 아닌 것으로 간주됩니다.
프래그먼트가 빈 문자열이기 때문에 약간의 디버깅이 "/ 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입니까? 어떻게 접근합니까? –
예. 전통적인 링크, 아니 아약스. – user689541
그리고 어떤 페이지로 돌아갑니다? 백본 경로가 트리거되고 있습니까? –