有没有办法让Sammy.JS在你调用app.run()时不会自动调用runRoute?
我的代码当前在第一次加载时初始化Sammy,但不希望它在用户实际单击链接之前实际调用任何sammy路由。
发布于 2011-04-26 02:52:23
您可以尝试向run方法传入一个不可操作的路由。在这种情况下,它可能会忽略散列中的任何路由。
否则,您可以在文档根目录上设置一个侦听器来侦听文档中的单击,然后运行应用程序。但是这个解决方案似乎“不那么干净”。
(假设为jQuery)
$(function () {
var app = Sammy();
$("a").live(function () {
if (!app.isRunning()) {
app.run();
}
});
});发布于 2014-11-08 03:24:40
这个问题是旧的,但我使用了下面的解决方案,我发现它更干净一些。
页面正常加载,并且在使用.run()时,Sammy不会调用当前路由。
http://sammyjs.org/docs/api/0.7.4/Sammy.Application..before
var appIsRunning = false;
var app = Sammy(function() {
this.before('.*', function() {
if (this.path == document.location.pathname && appIsRunning == false) {
return false;
}
});
// The routes...
...
}
// start the application
app.run();
if (app.isRunning()) { appIsRunning = true; }https://stackoverflow.com/questions/5780986
复制相似问题