2016-07-12 2 views
1

다음과 같이 나는 Marionettejs에 경로를 정의하고있다 :마리오 네트 루트에서 후행 슬래시를 무시하는 방법?

브라우저에서 다음
var Mn = require('backbone.marionette'); 

var Router = Mn.AppRouter.extend({ 
    routes: { 
     '': 'default', 
     'login': 'login',  // http://localhost:8080/#/login 
     'signup': 'signup' // http://localhost:8080/#/signup 
    }, 
    initialize: function() { 
     var initData = this.getOption('keyInOptions'); 
    }, 
    // below are route functions 
    default: function() { 
     console.log('this is default route'); 
    }, 
    login: function() { 
     console.log('this is login route'); 
    }, 
    signup: function() { 
     console.log('this is signup route'); 
    } 
}); 

module.exports = Router; 

:

http://localhost:8080/#/login

성공적으로 로그인 경로를 트리거하지만

http://localhost:8080/#/login/

(끝에 슬래시를 하나 추가하면 로그인 경로 기능이 실행되지 않습니다. 다른 경로 항목을 정의 할 수 있습니다.이 문제를 해결하기 위해 다른 경로 항목을 정의 할 수 있습니다. 그러나이 솔루션은 라우터 정의의 항목을 두 배로 늘립니다. loginlogin/에 동일한 경로 처리기를 트리거하는 더 좋은 방법이 있습니까?

답변

3

괄호로 후행 슬래시를 둘러 봤습니까? 백본 documentation에서

routes: { 
    'login(/)': 'login' 
} 

: 다음과 같은 경로의

부분은 괄호 에 주변에 의해 선택 될 수 있습니다 (/ : 선택 사항).

관련 문제