2014-02-07 113 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。现在,如果我只是输入我的网址栏mywebsite.com/#/contact,它将加载mywebsite.com/#/,换句话说,直接到主页。

我会说,如果我先去首页,mywebsite.com/#/,然后修改我想要的网页的URL,它会工作。如果我按Enter键重新加载页面,或者如果我尝试再次修改它,它将返回到主页。请帮忙。

+0

此外,如果这可能会干扰,我稍后使用一个小AJAX jQuery。尽管如此,我认为无论如何我都会遇到问题。 – ArtlyticalMedia

+0

您是在$(document).ready()中定义路由和调用运行('#/')吗? ('#main',function(){(“#header”)。load(“templates/header.html”); $(“#nav- – rivarolle

+0

”)我开始这样的main.js代码 $ (“#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