我正在开发管理面板到我的网站,并决定用淘汰赛和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),我就会到达同一页面上的空路线,所以我无法转到另一个带链接的页面。任何想法如何解决?
答案 0 :(得分: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版本中,还有另一种行为。
答案 1 :(得分: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");
});