2016-11-14 41 views
0

我有一個非常類似的場景角度UI路由器演示應用程序:無論何時用戶試圖訪問需要身份驗證的狀態,有一個鉤子將他重定向到登錄州。額外的要求是有人可能想要通過URL訪問一個具有附加查詢字符串參數的狀態:username應該在登錄頁面的相應輸入中自動填充該參數。Angular UI路由器 - 狀態查詢字符串參數不工作

我的狀態結構如下所示:

  • 存在是父母在演示程序
  • 類似app國家所有其他國家此shell州有url: '?username'一個shell抽象狀態(如果我正確理解這個參數然後應該受到所有其他國家繼承)
  • login組件具有約束力的username: '<'
  • login國家有resolve像這樣username: $transition$ => $transition$.params().username

整個登錄/重定向機制完美的作品。唯一的問題是,在login的狀態resolveparams().username是未定義的,即使在瀏覽器中我去鏈接如http://mysite/#/somestate?username=foo

任何想法我做錯了什麼,或者我怎麼能實現我所追求的?

謝謝!

回答

1

我要回答我自己的問題:問題實際上是在登錄重定向掛鉤。在那裏,我重定向到登錄狀態state.target('login', params, {location: false}),我從transition.router.stateService.paramsparams,從來沒有有效的值。

只是想出來的東西我發現實際transition.params()給了我正確的參數值,所以我現在可以重定向與這些參數,它工作正常。

我確實有一個問題仍然存在:理想情況下,我會在登錄後像這樣重定向到最初請求的狀態並從查詢字符串中清除這些參數。任何人都知道這是可能的/支持的?