0
我有一個ui-router的問題,我不能完全把我的手指放在。我可以點擊一個鏈接(在我的應用程序的登錄頁面上)並導航到第二個頁面(用戶可以註冊的頁面)。第二頁上有一個取消按鈕,只需將用戶導航回第一頁即可。迄今爲止都很好。
如果我再次點擊相同的鏈接,用戶似乎留在同一頁面(即登錄頁面),但我已經添加了一個'狀態改變'處理程序到我的應用程序(它只是記錄過渡到控制檯),並可以看到實際發生的情況是應用程序似乎轉換到第二個頁面,然後再返回。除了演示流程之外,以下內容沒有什麼意義。你可以看到狀態改變的開始,結束及視圖負荷再次啓動,並轉換回「authentication.login」
Start state change : {authentication.login} to {authentication.registration}
View content loading
End state change success : {authentication.login} to {authentication.registration}
View content loaded
Start state change : {authentication.registration} to {authentication.login}
View content loading
End state change success : {authentication.registration} to {authentication.login}
View content loaded
注意之前:這兩個頁面是一樣的抽象節點的兄弟姐妹。
任何想法,爲什麼會發生這種情況?
注意:狀態配置如下:
.state("authentication", {
url : "/auth",
abstract : "true",
templateUrl : "app/main/common/html/templates/simple-template.html",
})
.state("authentication.login", {
url: "/login",
views: {
"main": {
templateUrl : "app/main/authentication/html/login.html",
controller: "LoginController"
}
}
})
.state("authentication.registration", {
url: "/registration",
views: {
"main": {
templateUrl : "app/main/authentication/html/registration.html",
controller: "RegistrationController"
}
}
})
我很確定我們沒有,但只是爲了確保我檢查。我能看到的唯一$ stateChangeStart引用是在我自己的狀態更改處理程序中,它只記錄控制檯的狀態更改(當然還有角度庫)。我偶爾使用我的處理程序作爲調試工具。 爲了確定這不會導致問題,我將它從模塊中完全刪除。仍然得到相同的行爲。我會用這兩個屏幕的配置更新主要問題,以防萬一我做錯了什麼。 謝謝 –
我相信我是正確的說一個抽象狀態本身不存在,但用於提供所有兒童狀態的通用配置。我認爲這是說authentication.login和authentication.registration將使用抽象狀態中定義的相同模板。然而,爲抽象狀態定義URL是毫無意義的(如果我的想法是正確的),因爲兩個孩子都會覆蓋它。但是,不確定這是否會導致您遇到的問題。還應該引用「真」嗎? – danday74