我在導航/路由URL時遇到問題。舉例來說,我目前在#contact/new
,並且再次請求相同的網址,那麼它不會調用相應的功能。我需要將URL更改爲例如#contact/edit
,然後單擊#contact/new
正在工作。從同一個URL路由URL現在是個問題?Backbone.js將不會路由到與當前URL相同的URL
4
A
回答
1
我有同樣的問題。 路由相同的網址example.com/#/new(調用相同的網址兩次)不會觸發路由。 我每個路由後更改URL創建了一個解決辦法:
var url = window.location.href;
url = url.substring(0,url.indexOf('#')) + '#/';
window.location.replace(url);
或更容易:
window.location.hash = '#/';
但是這種解決方案在我看來有點髒。
+0
window.location.hash ='#/';觸發路線.. – Hontoni 2014-04-29 08:31:38
1
我一直在試圖找出這個問題。我最新的嘗試是添加附加一個時間戳字段的鏈接的功能,然後調用導航功能:
var AppRouter = Backbone.Router.extend({...});
var app_router = new AppRouter;
function LoadLink(Link) {
var Timestamp = new Date().getTime();
app_router.navigate("#/" + Link + "/ts_" + Timestamp);
}
這種方法可以讓我有一個可以多次點擊一個鏈接,但現在我要在設置路線時考慮時間戳。它可能會在稍後回來咬我。 :(
1
我知道我遲到了,但我通過使用導航功能,解決了類似的問題
試着這麼做:
this.navigate("#contact/edit", {trigger: false, replace: true});
從而改變路由器認爲URL它是在以#聯繫人/編輯,而不實際調用Action
2
我最終通過調用一個無聲導航到根提前解決這個問題:
var url = window.location.pathname.substr(Backbone.history.root.length);
this.navigate('/', { trigger: false });
this.navigate(url, { trigger: true });
請記住,這將創建一個額外的歷史記錄,但在我的情況下,這並不重要。
你也可能得到這個沒有改變Backbone.history
對象的fragment
財產的歷史記錄條目工作,但這個屬性應該是私有的,所以用它鬼混:)
之前,我會三思而後行fragment屬性用於將當前URL與傳遞給navigate函數的URL進行匹配,因此如果它們不匹配,則會執行路由。
相關問題
- 1. Backbone.js URL路由
- 2. 燒瓶URL路由:路由幾個URL到相同的功能
- 3. 路由操作到相同的URL
- 4. Backbone.js路由 - 追加鍵/值到URL
- 5. 觸發backbone.js路由而不更改url
- 6. 將當前URL提交到頁面,稍後將重定向到相同的URL
- 7. MVC路由 - 相同的路線,但表現出不同的URL
- 8. Django的URL配置和Backbone.js路由器
- 9. Backbone.js的 - 默認路由器,從URL
- 10. URL不會路由到控制器
- 11. PageMethods.SetPath()與URL路由URL不工作PARAMS
- 12. 多個路由的相同URL
- 13. ASP.NET MVC路由 - 當動作名稱和URL相同時重定向到路由
- 14. 將多個URL路由到ASP.NET MVC中的相同視圖
- 15. Backbone.js的當我使用Backbone.js的路由器路由器不會對IE6
- 16. Url路由與symfony
- 17. Backbone.js路由器url包含參數
- 18. ASP.Net Web窗體URL使用不同的URL路由相同的頁面
- 19. 路由表問題路由多個URL以相同的模式
- 20. Laravel路由相同的URL不同控制器
- 21. Symfony2 - 兩個不同URL的相同路由名稱
- 22. ASP.NET MVC3路由 - 不同區域的相同URL
- 23. Angular - 具有不同模板的相同Url(UI路由器)
- 24. 如何將非常相似的URL路由到不同的控制器操作?
- 25. 在相對於用戶當前URL路徑的不同路徑中設置cookie
- 26. Backbone.js的路線不會被路由
- 27. Angular 2 - 將子組件路由到不同的URL
- 28. 路由與友好的URL
- 29. 重定向到當前友好的URL(與URL變量或不)
- 30. Ember路由指定不同的根URL
我沒有這種問題。你介意發佈一個示例代碼嗎? – sntran 2012-03-01 02:28:20
爲什麼你需要路由到相同的網址?您可以使用事件再次觸發您想再次調用的功能。 – teggy 2012-03-01 20:03:49
您可能正在尋找的答案:http://stackoverflow.com/a/10181053/126600 – zack 2013-06-20 13:14:06