【问题标题】:Knockout.js and Sammy.js wrong behaviourKnockout.js 和 Sammy.js 错误行为
【发布时间】:2012-12-20 11:31:40
【问题描述】:

我正在为我的网站开发管理面板,并决定使用淘汰赛和 sammy 来实现。但是我面临路由问题。我有两页:

http://localhost/admin/element and http://localhost/admin/category. 

在我的元素页面上,我有以下 Sammy 配置:

Sammy(function() {
            this.get('#:currentpage', function() {
                self.reloadPage(this.params.currentpage);
            });

            this.get('', function() {
                this.app.runRoute('get', '#1');
            });
        }).run();

一切都很完美,但是如果我尝试转到另一个页面(通过通常的链接,例如Edit Categories),我只会到达同一页面上的空路线,所以我无法通过链接转到另一个页面。任何想法如何解决这个问题?

【问题讨论】:

    标签: javascript knockout.js sammy.js


    【解决方案1】:

    不要在您的 Sammy 配置中使用 ''。尝试使用 '/' 作为根页面或使用 '/admin/element' 作为您的元素。

    var Router = function() {
        var sammy = new Sammy.Application(function() {
    
                this.get('#:currentpage', function(context) {
                    alert(context.params.currentpage);
                });
    
                this.get('/admin/element', function () {
                    this.app.runRoute('get', '#1');
                });
    
            }),
            run = function() {
                sammy.run();
            };
    
        return {
            run: run
        };
    };
    
    $(function() {
        var r = new Router();
        r.run();
    });
    

    PS:示例使用 Sammy 0.7.1 版本。在 0.6.3 版本中还有另一种行为。

    【讨论】:

    • 谢谢,这个简单的建议对我帮助很大:)
    【解决方案2】:

    如果您有一个操作链接并希望点击进入另一个页面,则此方法有效

    `<li>@Html.ActionLink("Admin Action Link Test", "Admin", "Home")</li>
    this.get('/Home/Admin', function ()
                    {
                        location.assign("/Home/Admin");
                    });`   
    

    或者你可以使用哈希来做到这一点

    <li><a href="#/Home/About">About Full Path</a></li>  
    this.get('#/Home/About', function ()
                    {                       
                        location.assign("/Home/About");                   
                    });
    

    【讨论】:

      猜你喜欢
      • 2012-06-30
      • 2012-12-18
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多