2013-07-01 43 views
1

在我的backbone.js應用程序中,我希望能夠觸發一個簡單的鏈接。強制頁面刷新鏈接點擊backbone.js

<a href=/logout">Log Out</a> 

現在我用的路由器使用它像這樣:

logout: function() { 
    window.location = '/logout'; 
} 

是否有可能從HTML直接致電給該鏈接,就像一個正常的鏈接?作爲通知,路由器啓用了pushState。

+0

你試過只是沒有界定這條路呢? –

+0

是的,瀏覽器中的路由被替換,但未被觸發 –

+0

對不起,我一開始並不理解你的問題。檢查我更新的答案 –

回答

2
+0

我實際上使用這個樣板,我添加數據繞過作爲屬性標記?只是試過它,它不起作用 –

+0

不,你應該刪除它,因爲它適用於所有沒有'data-bypass'屬性的鏈接:)'a [href]:not([data-bypass])' –

+0

好吧,但它並沒有解決問題,鏈接只是在url欄中更換,但沒有被解僱 –

2

這是真正關心你如何附上事件的<a>標籤。最簡單的方法是將rel="external"添加到您不希望它們觸發骨幹路由器的鏈路上。喜歡的東西:

$('body').on('click', 'a[href][rel!="external"]', function(e){ 
    app_router.navigate($(this).attr('href'), {trigger: true}); 
    e.preventDefault(); 
}); 

和修改HTML是:

<a href=/logout" rel="external">Log Out</a>