如何根据sammy js中的路由加载html文件?

时间:2011-07-29 01:55:27

标签: javascript jquery sammy.js

我没有足够的javascript和jQuery开发经验,所以我想知道是否有人可以告诉我如何创建一个使用sammy.js和HTML模板的函数。

这是我现在的工作代码:

<script>
    ;(function($) {

      var app = $.sammy(function() {

        this.get('#/', function() { $('#content').text(''); });

        this.get('#/home', function() { $('#content').load('main.html'); });

      });

      $(function() { app.run() });

    })(jQuery);

</script>

当我转到或点击main.html时,此代码会显示...html#/home的内容,但我正在寻找一个javascript函数,它只能找出网址的终点({之后的单词} {1}})并获取同名的html页面。

pseudo-code中:

..#/

感谢您的帮助

1 个答案:

答案 0 :(得分:8)

你只需要一个route with a parameter

this.get('#/:page', function() { 
    $('#content').load(this.params['page'] + '.html');
});

确保在您的其他路线之后,或者几乎所有路线都会被呼叫(例如您已经处理过的#/home。)

当然,您可以在路线中添加其他参数:

this.get('#/:where/:is/:pancakes/:house', function() {
    // Do things with this.params['where'], this.params['is'],
    // this.params['pancakes'], and this.params['house'].
});

您只需要确保订单正确或路线可以互相争斗。路线的匹配顺序与它们的添加顺序相同,因此更常见的全部路线通常位于底部。