2012-11-17 5 views
2

저는 오랫동안이 문제로 어려움을 겪었습니다. Require.js와 함께 Backbone.js를 사용하고 있습니다. 현재 URL (해시가 아님)에 따라 특정보기를 표시하도록 백본에게 말하려고합니다. 내 코드는 다음과 같습니다 : 사용자가 http://example.com/new_page로 이동Backbone.js의 해시 대신 URL 조각 가져 오기

define(['jquery','underscore','backbone', 'views/manage_pages'], function($, _, Backbone, ManagePages) { 
    var AppRouter = Backbone.Router.extend({ 
    routes:{ 
     '/new_page': "showPageForm", 
     '/edit_page': "showPageEditForm", 
     '*actions': "showPageForm" 
    }, 
    }); 
    var initialize = function(){ 
    appRouter = new AppRouter; 
    appRouter.on("route:showPageForm", function(){ 
     console.log('hej'); 
    }); 
    appRouter.on("route:showPageEditForm", function(){ 
     console.log('ho'); 
    }); 
    var page_form = new ManagePages(); 
     Backbone.history.start(); 
    } 
    return { 
     initialize: initialize 
    } 
    }); 

그래서 기본적으로 때 <code>hej</code>을 기록해야 그가 http://example.com/editpage에 갈 때 그것은 <code>ho</code>를 기록해야한다. 나는 이것을 성취 할 방법이나 그것이 가능할지라도 모른다. 누구든지 나를 도울 수 있습니까?

답변

8

해시 조각 대신 URL 경로를 사용하는 HTML5 push-state에 대해 백본의 지원을 사용할 수 있습니다. history.start를 호출 할 때 그냥 옵션으로 지정

Backbone.history.start({ pushState: true }); 

(응용 프로그램이 도메인에서 하위 경로에있는 경우, 다음 사용할 백본을 알 수 있습니다 그 루트로 - Backbone.history.start({pushState: true, root: "/myapproot/"}) - 귀하의 경우에는 문제가되지 않는 것으로 보입니다.)