Как мне загрузить html-файл по маршруту в sammy js? - PullRequest
1 голос
/ 29 июля 2011

У меня недостаточно опыта разработки 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, которая просто определяет конечную точку URL (слово после ..#/) и получает HTML-страницу с тем же именем.

In псевдокод :

if( somethingWasClicked and uses sammy.js )
  loadContent();

function loadContent() {
    endpoint = figureOutEndPoint();
    $('#content').load(endpoint.html);
} 

Спасибо за помощь

1 Ответ

8 голосов
/ 29 июля 2011

Вам просто нужен маршрут с параметром :

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'].
});

Вам просто нужно убедиться, что вы правильно сделали заказ или маршрутымогут бороться друг с другом.Маршруты сопоставляются в том же порядке, в котором они добавлены, поэтому более общие маршруты общего доступа обычно идут внизу.

...