2
我的UI路由器狀態提供商設置像這樣:AngularJS UI路由器:UI-SREF鏈接在HREF值填充時不預先考慮哈希
.state(
'events', {
url: '/events',
templateUrl: ...,
controller: ...
})
.state(
'events.listEvents', {
url: '/list',
templateUrl: ...,
controller: ...
})
.state(
'events.eventDetails', {
url: '/details',
templateUrl: ...,
controller: ...
})
我開始events.listEvents
狀態,所以我的URL看起來像這樣:
https://baseUrl.com/home#/events/list
,我有像這樣的頁面上的鏈接:
<a ui-sref="events.eventDetails">event details</a>
當我只需點擊正常鏈接,它工作正常和路線我到一個頁面的網址:
https://baseUrl.com/home#/events/details
但是當我試圖打開一個新的標籤相同的鏈接(或當我點擊右鍵並複製的「href」鏈接地址),這是不正確的:
https://baseUrl.com/events/details
所以問題1上是:爲什麼ui-sref填寫了錯誤的值?爲什麼它完全缺少它生成的URL中的#散列? (是的,我已經嘗試啓用/禁用$ locationProvider.html5mode,但這並沒有這方面的任何影響。)
爲什麼' 「events.listEvents」URL中的/ home?user = jeff'? – tommyd456
這只是爲了說明應用程序有一個基本URL(在這種情況下是'/ home'),它隨着ui路由器狀態的改變而保持不變。當你在狀態之間切換時,'/ home'保持不變,只有#井號後面的內容發生變化。如果您願意,您可以忽略'?user = jeff' - 它是基本URL的一部分,所以在您瀏覽應用程序時它會保持不變。 – Dasmowenator
編輯:我在這裏清理了我的示例URL,使其更容易閱讀 – Dasmowenator