3
나는 사이트 탐색을 멋지게 처리하고 브라우저의 뒤로/앞으로 단추를 클릭 할 때도 작동하는 라우터가 있습니다.백본 라우터 문제
define(function(require) {
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone');
var AppRouter = Backbone.Router.extend({
routes: {
'home' : 'homeHandler',
'webdesign' : 'webHandler',
'mobile' : 'mobileHandler',
'javascript' : 'javascriptHandler',
'hosting' : 'hostingHandler',
'contact' : 'contactHandler'
},
initialize: function() {
this._bindRoutes();
$('.link').click(function(e){
e.preventDefault();
Backbone.history.navigate($(this).attr("href"),true);
});
if(history && history.pushState) {
Backbone.history.start({pushState : true});
console.log("has pushstate");
}
else {
Backbone.history.start();
console.log("no pushstate");
}
console.log("Router init with routes:",this.routes);
},
homeHandler: function(e) {
require(['../views/home-content-view', '../views/home-sidebar-view'],
function(HomeContent, HomeSidebar) {
var homeContent = new HomeContent();
homeContent.render();
var homeSidebar = new HomeSidebar();
homeSidebar.render();
});
},
webHandler: function(e) {
require(['../views/web-content-view', '../views/web-sidebar-view'],
function(WebContent, WebSidebar) {
var webContent = new WebContent();
webContent.render();
var webSidebar = new WebSidebar();
webSidebar.render();
});
},
...
});
return AppRouter;
});
분명히, 내가 부족 뭔가 : 직접 URL을 입력 할 때 그러나, 나는 404
을받을 것은 여기 내 라우터입니다.
모든 설명이 크게 감사하겠습니다.
감사합니다, 스테판
사이드 노트 :'homeHandler'와'webHandler' 핸들러는 거의 동일합니다. 하나의 핸들러로 그들을 병합하는 것을 고려하십시오 ... –
예제를 주시겠습니까? 어떤 URL을 직접 입력하고 있습니까? –
예 : mydomain.com/webdesign – bardu