2013-07-29 172 views
2

我有一个非常简单的路由。当我第一次点击我的< a href =“#content_ft”>时,匹配(ft)的路由函数将被调用。但是这里出现了这个问题,我第二次点击<,路由功能(ft)不能被调用。骨干路由不能叫

我认为这是因为浏览器中的网址仍然是*“www.mysite.com/index.html#content_ft”*,骨干认为我没有访问一个新的锚点,所以路由将无法工作。但我需要的是刷新页面的效果。我需要路由功能ft可以在单击< a href =“#content_ft”>时调用,即使url不会更改。

任何帮助表示赞赏!

这里是我的路由器:

app.HomeRouter = Backbone.Router.extend({  

    routes : {   
     "content_ft" : "ft", 
     "content_view_diag" : "view_diag", 
    }, 

    ft : function() {   
      //do something()  
    }, 

    view_diag : function(){ 
      //do something 
    },  

}); 

    app.router = new app.HomeRouter(); 
    Backbone.history.start(); 
+5

检查这个http://stackoverflow.com/questions/8901574/how-to-refresh-a-page-in-a-backbone-application –

+0

嗯,恕我直言,你需要'app.HomeRouter =新干线.Router.extend({'还有,你是否打电话创建路由器'Backbone.history.start();' – Sergey

+0

我有实例我的app.HomeRouter,我只是没有写在我的问题中,现在我要补充它。你可能不明白我的问题@谢尔盖 –

回答

0

你可以尝试设置一个侦听的锚触发下面看看会发生什么?

app.navigate("content_ft", {trigger: true});