在我的backbone.js應用程序中,我希望能夠觸發一個簡單的鏈接。強制頁面刷新鏈接點擊backbone.js
<a href=/logout">Log Out</a>
現在我用的路由器使用它像這樣:
logout: function() {
window.location = '/logout';
}
是否有可能從HTML直接致電給該鏈接,就像一個正常的鏈接?作爲通知,路由器啓用了pushState。
在我的backbone.js應用程序中,我希望能夠觸發一個簡單的鏈接。強制頁面刷新鏈接點擊backbone.js
<a href=/logout">Log Out</a>
現在我用的路由器使用它像這樣:
logout: function() {
window.location = '/logout';
}
是否有可能從HTML直接致電給該鏈接,就像一個正常的鏈接?作爲通知,路由器啓用了pushState。
我想從骨幹網,樣板項目的解決方案 - https://github.com/backbone-boilerplate/backbone-boilerplate/blob/master/app/main.js#L22
我實際上使用這個樣板,我添加數據繞過作爲屬性標記?只是試過它,它不起作用 –
不,你應該刪除它,因爲它適用於所有沒有'data-bypass'屬性的鏈接:)'a [href]:not([data-bypass])' –
好吧,但它並沒有解決問題,鏈接只是在url欄中更換,但沒有被解僱 –
這是真正關心你如何附上事件的<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>
你試過只是沒有界定這條路呢? –
是的,瀏覽器中的路由被替換,但未被觸發 –
對不起,我一開始並不理解你的問題。檢查我更新的答案 –