Javascript 如何根据sammy js中的路由加载html文件?
我没有足够的javascript和jQuery开发经验,所以我想知道是否有人能告诉我如何创建一个使用sammy.js和HTML模板的函数 这是我现在的工作代码:Javascript 如何根据sammy js中的路由加载html文件?,javascript,jquery,sammy.js,Javascript,Jquery,Sammy.js,我没有足够的javascript和jQuery开发经验,所以我想知道是否有人能告诉我如何创建一个使用sammy.js和HTML模板的函数 这是我现在的工作代码: <script> ;(function($) { var app = $.sammy(function() { this.get('#/', function() { $('#content').text(''); }); this.get('#/home', fun
<script>
;(function($) {
var app = $.sammy(function() {
this.get('#/', function() { $('#content').text(''); });
this.get('#/home', function() { $('#content').load('main.html'); });
});
$(function() { app.run() });
})(jQuery);
</script>
感谢您的帮助您只需要一个:
确保这是在你的其他路线之后,否则几乎所有的东西都会被呼叫(比如你已经在处理的#/home
)
当然,您可以在管线中放置其他参数:
this.get('#/:where/:is/:pancakes/:house', function() {
// Do things with this.params['where'], this.params['is'],
// this.params['pancakes'], and this.params['house'].
});
你只需要确保你得到了正确的命令,否则路线会互相争斗。路线的匹配顺序与添加路线的顺序相同,因此更通用的“一网打尽”路线通常位于底部。您只需在其中添加一个:
确保这是在你的其他路线之后,否则几乎所有的东西都会被呼叫(比如你已经在处理的#/home
)
当然,您可以在管线中放置其他参数:
this.get('#/:where/:is/:pancakes/:house', function() {
// Do things with this.params['where'], this.params['is'],
// this.params['pancakes'], and this.params['house'].
});
你只需要确保你得到了正确的命令,否则路线会互相争斗。路由的匹配顺序与它们添加的顺序相同,因此更通用的“一网打尽”路由通常位于底部。@Kartik:不能让你在Sammy.js上过得不愉快,这是我最喜欢的JavaScript库之一:)嗨,不知什么原因,当我直接转到
…html/#info
时,信息不是默认页面。。它似乎不会加载info.html,除非我特别单击页面上指向#/info
页面的链接。那会发生吗?sammy.js不支持这个链接吗?@Kartik:sammy是在每个页面上设置的吗?我只是在说同一个页面。我在index.html上安装了sammy.js,菜单中有指向各种其他页面的链接,其中菜单中的所有链接都以#/pagename
的形式显示,根据您的答案,一切正常。例如,当单击菜单上的信息链接=#/info
时,info.html的内容会得到完美的显示。但是如果我将url复制到index.html#/info
并将url粘贴到新选项卡中。。它不显示我看到的信息内容。问题是,当浏览器看到index.html#/info
时,它将加载index.html
页面,Sammy对此无能为力;然后,当加载index.html
时,Sammy可以使用#/info
完成它的工作。Sammy(或任何其他JavaScript)对此无能为力,除非你到处连接点击处理程序,Sammy不会这么做(当然,我也不应该这么做)。只要在链接中使用#/info
样式的URL即可。@Kartik:不能让你对Sammy.js感到不快,那是我最喜欢的JavaScript库之一:)嗨,不知什么原因,当我直接转到…html/#info
时,信息不是默认页面。。它似乎不会加载info.html,除非我特别单击页面上指向#/info
页面的链接。那会发生吗?sammy.js不支持这个链接吗?@Kartik:sammy是在每个页面上设置的吗?我只是在说同一个页面。我在index.html上安装了sammy.js,菜单中有指向各种其他页面的链接,其中菜单中的所有链接都以#/pagename
的形式显示,根据您的答案,一切正常。例如,当单击菜单上的信息链接=#/info
时,info.html的内容会得到完美的显示。但是如果我将url复制到index.html#/info
并将url粘贴到新选项卡中。。它不显示我看到的信息内容。问题是,当浏览器看到index.html#/info
时,它将加载index.html
页面,Sammy对此无能为力;然后,当加载index.html
时,Sammy可以使用#/info
完成它的工作。Sammy(或任何其他JavaScript)对此无能为力,除非你到处连接点击处理程序,Sammy不会这么做(当然,我也不应该这么做)。只需在链接中使用#/info
样式的URL即可。
this.get('#/:where/:is/:pancakes/:house', function() {
// Do things with this.params['where'], this.params['is'],
// this.params['pancakes'], and this.params['house'].
});