【问题标题】:Can I add a Sammy route after run()我可以在 run() 之后添加 Sammy 路线吗
【发布时间】:2015-02-20 15:26:24
【问题描述】:

我让 Sammy 工作得很好。我想在某个时候动态地添加但是我想在调用 run() 之后向 Sammy 添加一条路由。这可能吗?

我在 Sammy.run 之前指定的所有路线都有效。不过,我有一些动态路线想在以后添加。

提前致谢,斯科特

【问题讨论】:

    标签: sammy.js


    【解决方案1】:

    当然。你可以在 run 方法之后定义新的路由。但是,加载页面时不会触发初始路由回调。如果在定义路由后调用 run(on dom ready),sammy 将触发当前路由的回调。

    例如。 如果你在 run 方法之后定义了 2 个路由

    • #/
    • #/列表

    并且您点击了以下网址 - www.mysite.com/index.html#/,将不会调用 #/ 路由的回调。

    我建议调用 app.runRoute('get', location.hash) 或类似的方法来获取第一个触发路径。

    一些代码:

    $(function()
        {
            app.run();
    
            app.get('#/', function()
            {
                alert('home');
            });
    
            app.get('#/list', function()
            {
                alert('list');
            });
    
            app.runRoute('get', location.hash);
        });
    

    仅供参考 Durandal 2.0 允许子路由。或许可以看看。

    希望对你有帮助

    【讨论】:

    • 感谢您的帮助。我的部分问题是我之前定义了一个路由,其中​​包含一个空字符串 url,如 ''。我将其更改为“仪表板”之类的内容,然后使用 sammy.run('#/dashboard'); 启动 Sammy;一旦我这样做了,我的跑步路线就会起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    相关资源
    最近更新 更多