我开始学习如何在Web应用程序中使用骨架js,并且在启动应用程序时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一样在App上运行时,defaultRoute不会被加载。

当我单击路由中未引用的链接时,将加载page1.html。

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

谢谢

最佳答案

您的代码演示了steinerJS的某种不寻常用法,因为您将完整的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){
     ...
    }
});

10-06 12:29