只是想确保我和SammyJS一起做正确的事,因为它并不像我一样。
我在代码中处理了一个click事件,必须在代码中处理。所以..我想要发生以下事情:
我找到了以下方法:
EventContext.redirect
方法和app.runRoute
方法。我是SammyJS的新手,但是我使用了durandal,在这种情况下,我使用了router.navigate
方法,我找不到直接的等效方法。
执行上述操作后,更新了URL并运行了路由,因此我得到了我想要的内容,但感觉有点笨拙。有没有更好的方法呢?
答案 0 :(得分:0)
app.setLocation('#/YourPathHere');
或
window.location = '#/YourPathHere';
来自文档:
Sammy.Application setLocation(new_location) 委托location_proxy设置当前位置。有关位置代理的详细信息,请参阅Sammy.DefaultLocationProxy。 参数
new_location新的位置字符串(例如'#/')
http://sammyjs.org/docs/api/master/Sammy.Application.methods.setLocation
答案 1 :(得分:0)
您可以为指定的链接设置路线,Sammy应该在点击这些链接时自动路由到路线事件。 在路线中,您可以通过ajax加载内容或重定向到另一个页面。 一个小例子:
HTML:
<section id="navi">
<a href="#/1">One</a>
<a href="#/2">Two</a>
<a href="#/3">Three</a>
</section>
JS:
;(function($) {
var app = $.sammy(function() {
this.get('#/:page', function() {
var jmnu = $( 'a[href="#/' + this.params['page'] + '"]' );
// do whatever you want to do before pageload
// even trigger click events manual
// and then load page:
$('#main').html('<p>this is site ' + this.params['page'] + '</p>');
});
});
$(function() {
app.run('#/1')
});
})(jQuery);