2014-02-07 2 views
0

Я использую Sammy.js для своего сайта, и я хочу отправить ссылку на страницу на сайт кому-то по электронной почте. Я настроил ссылки, как это:Ссылка на страницу внутри сайта Sammy.js

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

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

Первый по умолчанию, так что, когда вы печатаете на мой сайт, он идет к разделу home.html первым и если я что из, когда я иду мой сайт, ничего не загружается в #main. Теперь, если бы я просто набрал в свой URL-адрес mywebsite.com/#/contact, он загрузит mywebsite.com/#/, другими словами, прямо на домашнюю страницу.

Я скажу, что если я сначала перейду на домашнюю страницу, mywebsite.com/#/, а затем измените URL-адрес на страницу, которую я хочу, она будет работать. Если я нажму Enter, чтобы перезагрузить страницу, или если я попытаюсь изменить ее снова, она вернется на главную страницу. Пожалуйста помоги.

+0

Кроме того, я использую немного AJAX jQuery позже, если это может мешать. Хотя я думаю, что у меня была проблема до этого в любом случае. – ArtlyticalMedia

+0

Вы определяете свой маршрут и вызов ('# /') в $ (document) .ready()? – rivarolle

+0

Я запускаю код main.js следующим образом: 'Sammy ('# main', function() { $ (" # header "). Load (" templates/header.html "); $ (" # nav- bar "). load (" templates/nav-bar.html "); $ (" # footer "). load (" templates/footer.html ");' , а затем код выше, а затем завершите следующим образом: '}). run();' – ArtlyticalMedia

ответ

0

Попробуйте обернув его в document.ready и запустить маршрут по умолчанию - как это:

$(document).ready(function() { 

    Sammy('#main', function() { 
      $("#header").load("templates/header.html"); 
      $("#nav-bar").load("templates/nav-bar.html"); 
      $("#footer").load("templates/footer.html"); 

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

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

    }).run('#/'); 

}) 

Это, кажется, работает на моем конце.

+0

Эй, rivarolle, спасибо за это. Я пробовал это, но я все еще не могу напечатать страницу в адресной строке и загрузить ее на правильную страницу, что бы вы еще не делали? – ArtlyticalMedia