簡體   English   中英

Angular重新加載url但不是狀態視圖

[英]Angular reload url but not the state view

我正在使用OAuth2協議開發應用程序,我遇到了UI.router模塊的問題。

實際上,在每個狀態發生變化之前,我需要測試訪問令牌是否存儲在sessionStorage中。 所以我使用像這樣的run函數:

.run(['$state', '$window', '$location', '$rootScope', function ($state, $window, $location, $rootScope) {
            $rootScope.$on('$stateChangeStart',
                function (event, toState, toParams, fromState, fromParams) {
                    var accesstoken = sessionStorage.getItem('access_token');
                    if (!accesstoken) {

                        if ($location.url() !== '/access/connexion') {
                            $state.go('access.connexion', null, { reload: true });
                        }
                    }
                });
        }])

我們現在承認我沒有連接,我嘗試訪問像/ users / 12355這樣沒有訪問令牌的URL:

事實是URL刷新,從/ users / 12355傳遞到/ access / connexion,但視圖仍然是/ users / 12355對應的視圖(沒有加載任何信息,因為我沒有訪問令牌)

我不知道是什么問題......

而且,如果我在$state.go之上的console.log ,似乎我在這個日志中傳遞了400次。 如果我刪除$state.go函數,我只通過一次...

你能幫助我嗎?

注意:access.connexion是根狀態

如果未找到令牌,請嘗試阻止狀態更改:

               if (!accesstoken) {
                     event.preventDefault();

                    if ($location.url() !== '/access/connexion') {
                        $state.go('access.connexion', null, { reload: true });
                    }
                }

添加notify: true$state.go params json應解決它,改變這個:

$state.go('access.connexion', null, { reload: true });

至:

$state.go('access.connexion', null, { reload: true, notify: true });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM