Вопрос по – почему для маршрута магистрали нужен маршрут по умолчанию

2

I create a test case with backbone.js @: http://jsfiddle.net/VWBvs/5/

Маршрут определяется как

var AppRouter = Backbone.Router.extend({
        routes: {
            "/posts/:id" : "getPost",
            "/download/*path": "downloadFile",  
            "*actions" : "defaultRoute"
        },
        getPost: function(id) {
            alert(id);
        },
        defaultRoute : function(actions){
            alert(actions);
        },
        downloadFile: function( path ){ 
            alert(path); // user/images/hey.gif 
        },
        loadView: function( route, action ){ 
            alert(route + "_" + action); // dashboard_graph 
        }
    });

    var app_router = new AppRouter;

    Backbone.history.start();​

Когда я меняю функцию

  defaultRoute : function(actions){
            alert(actions);
        },

в

defaultRoute : function(actions){
            var action = actions
        },

все другие маршруты не будут работать, что означает, что ни один диалог не появляется.

Но когда поменялся код, все ок.

Это действительно странно и запутывает меня. SOS искренне ......

Ваш Ответ

1   ответ
4

Как у вас есть кодdefaultRoute это единственный маршрут, который когда-либо стреляет. Если вы хотите, чтобы другие два маршрута стреляли, вы должны удалить ведущие косые черты.

routes: {
  "posts/:id" : "getPost",
  "download/*path": "downloadFile",  
  "*actions" : "defaultRoute"
}

Похожие вопросы