나는 내 응용 프로그램에서 다음 라우터를 사용하고 있습니다 :백본 라우터가 앱 루트로 리디렉션되는 이유는 무엇입니까?
app.Router = Backbone.Router.extend({
// define the route and function maps for this router
routes : {
"" : "showLogin",
// Sample usage: http://ServerManager/
"login" : "login",
// Sample usage: http://ServerManager/#login
"logout" : "logout",
// Sample usage: http://ServerManager/#logout
"folders" : "listFolders",
// Sample usage: http://ServerManager/#folders
"folders/:name" : "showFolder",
// Sample usage: http://ServerManager/#folders/System
"*other" : "defaultRoute"
// Sample usage: http://ServerManager/#badHash
},
showLogin : function() {
console.log("Home page loaded. Redirecting to #login page.");
this.navigate("login", {trigger: true, replace: true});
},
login : function() {
//console.log("login route fired");
// delete sessionStorage items and load a new loginview
this.changePage(new app.LoginView());
},
logout : function() {
//console.log("logout route fired");
// Clear the token and other session items from sessionStorage
sessionStorage.clear();
this.navigate("login", {trigger: true, replace: true});
},
listFolders : function() {
//console.log("listFolders route fired.")
if (app.folderView === undefined) {
console.log("creating new app.folderView");
app.folderView = new app.FolderView();
}
else {
console.log("using existing app.folderView");
}
this.changePage(app.folderView);
},
showFolder : function(name) {
console.log(app.router.routes[Backbone.history.fragment]);
//console.log("showFolder route fired.")
this.changePage(new app.ServiceView({folder : name}));
console.log(app.router.routes[Backbone.history.fragment]);
//app.router.navigate("folder/" + name, {trigger: false});
},
defaultRoute : function() {
alert("Error. Page doesn\'t exist.");
},
changePage : function(page) {
$(page.el).attr("data-role", "page");
page.render();
$("body").append($(page.el));
var transition = $.mobile.defaultPageTransition;
$.mobile.changePage($(page.el), {changeHash : true, transition : transition});
}
});
나는 그것이 성공적으로 서버/# 폴더에 응용 프로그램을 전송
app.router.navigate("folders", {trigger: true, replace: true});
사용하는 경우,하지만 난
app.router.navigate("folders/" + id, {trigger: true, replace: true});
을 통과 할 때
앱의 루트를 실행하고 로그인 페이지를로드합니다. 리디렉션이 발생하기 전에 올바른 URL (예 : server/folders/folder1)이 일시적으로 깜박이는 것을 확인할 수 있습니다. 여기에 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?
나는 문제가 무엇인지 확실하지 않다 그러나 나는 JQM 좋은 재생되지 않았기 때문에 [JQuery와 모바일 라우터 (https://github.com/azicchetti/jquerymobile-router) 플러그인을 처음에 만들 생각 백본 .js. – Jack