簡體   English   中英

刷新時從angularjs中的URL刪除hashbang

[英]On refresh remove hashbang from URL in angularjs

當導航更改路線時使用angularjs的站點時,它會在末尾添加一個hashbang,並且可以在刷新時恢復狀態(這非常酷)。

但是在我的特定項目中,我希望刷新時加載主路由(就像沒有hashbang一樣)。

這可能嗎?

您可以通過使用服務或多個控制器來執行此操作。 IMO最簡單的方法是在每個頁面上設置一個簡單的控制器和服務。

像這樣:

<div style='display:none;' ng-controller='RefreshController'></div>

服務:

.factory('redirect',function($rootScope){
    var rScope={};
    rScope.redirect=true;
    rScope.set=function(){
        rScope.redirect=false;
    };
    rScope.get=function(){
        return rScope.redirect;
    };
    return rScope;
});

控制器:

function RefreshController($location,redirect){
    if($location.path()=='/'){
        redirect.set()
    }
    if(redirect.get()){
        $location.path('/');
    }
}

簡而言之,如果您位於主頁上,它將設置一個服務變量以表示您位於主頁上。 只要不進行刷新,服務變量狀態將是靜態的。 如果刷新完成並且您當前不在主頁上,則服務變量將有所不同,並且用戶將被重定向到主頁。

暫無
暫無

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

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