Javascript Spinejs-当#路由已在url中时如何启动应用程序?

Javascript Spinejs-当#路由已在url中时如何启动应用程序?,javascript,url-routing,spine.js,Javascript,Url Routing,Spine.js,我开始重构一些“遗留”代码,其中许多js文件由于脚本的一个或两个特定参数而重复。我的想法是将所有文件合并为一个文件,消除代码重复,并根据路由区分这些参数。我想使用Spine.js 示例代码: $(function () { var SApp = Spine.Controller.create({ init:function () { this.routes({ "product/direct":function (

我开始重构一些“遗留”代码,其中许多js文件由于脚本的一个或两个特定参数而重复。我的想法是将所有文件合并为一个文件,消除代码重复,并根据路由区分这些参数。我想使用Spine.js

示例代码:

$(function () {

    var SApp = Spine.Controller.create({
        init:function () {
            this.routes({
                "product/direct":function () {
                    pId = $('#product-id').val();
                    magicFunction(pId);
                },
                "product/suggested":function () {
                    products = $('#parent-products').find('li');
                    $.each(products, function (index, product) {
                        pId = $(product).attr('data-id');
                        magicFunction(pId);
                    });                    
                }
            })
        }
    });

    Spine.Route.setup();
    new SApp();
});
每一条路线都是一个单独的页面

<a href="/page1.html#product/direct">1</a>   
<a href="/page2.html#product/suggested">2</a>

在文档中找不到解决方案

我所做的是强制导航到“家”


对于将来可能遇到这种情况的任何人,请尝试在初始路由器设置中添加计时器:

setTimeout (-> Spine.Route.setup()), 200

你解决过这个问题吗?我也面临同样的问题是的,请检查问题更新
Spine.Route.setup();
Spine.Route.navigate("/"); // force to go "home"
setTimeout (-> Spine.Route.setup()), 200