2

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

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),我只会到达同一页面上的空路线,所以我无法通过链接转到另一个页面。任何想法如何解决这个问题?

4

2 回答 2

4

不要在 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 版本中还有另一种行为。

于 2012-12-26T15:28:42.323 回答
0

如果您有一个操作链接并且想要点击进入另一个页面,这将有效

`<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");                   
                });
于 2013-02-25T03:15:03.280 回答