Backbonejs和defaultRoute

时间:2015-06-25 15:03:26

标签: javascript backbone.js web-applications backbone-routing

我开始学习如何在网络应用程序中使用backbonejs,并且在应用程序启动时我对defaultRoute有一点问题。

这是我的剧本

var AppRouter = Backbone.Router.extend({
    routes: {
        "user/:id": "getUser",
        "*actions": "defaultRoute"
    }
});

var app_router = new AppRouter;

app_router.on('route:defaultRoute', function() {
    $("#content").load("pages/page1.html");
});

app_router.on('route:getUser', function(id) {
    $("#content").load("pages/user.php?id="+id);
});

Backbone.history.start();

当您使用http://www.myapp.com这样的应用程序时,未加载defaultRoute。

当我点击路线中未引用的链接时,会加载page1.html。

我的问题是:当我开启应用程序时如何设置defaultRoute?

谢谢

1 个答案:

答案 0 :(得分:0)

您的代码演示了backboneJS的一些不寻常的用法,因为您将完整的HTML或页面加载到div容器中,而不是使用主干视图和下划线模板。

无论如何,您可能需要考虑以下实现,而不是使用app_router.on(...)语法。

考虑以下实施:

var AppRouter = Backbone.Router.extend({
    routes: {
        "":"defaultRoute" //The router will default to this route if no other routes are matched ("")
        "user/:id": "getUser",
        ...more routes
    },

    defaultRoute:function(){
     ...default route functionality
    },

    getUser:function(id){
     ...
    }
});