0
在更改路由時,如果瀏覽使用angularjs的站點,它會在最後添加一個hashbang,並可以在刷新時恢復狀態(這非常酷)。在刷新時從angularjs中刪除hashbang
但是,在我的特定項目中,我希望刷新加載主要路由(就像它會沒有hashbang一樣)。
這可能嗎?
在更改路由時,如果瀏覽使用angularjs的站點,它會在最後添加一個hashbang,並可以在刷新時恢復狀態(這非常酷)。在刷新時從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('/');
}
}
簡而言之,如果你是在主頁上,它會設置一個服務變量,說你在主頁上。只要沒有刷新完成,服務變量狀態將是靜態的。如果刷新完成並且當前不在主頁面上,則服務變量將不同,並且用戶將被重定向到主頁面。
我的理解是,您希望刷新瀏覽器以導航到不同的URL。而你想從javascript中完成。我不明白這是如何從JavaScript中可能的。另外,這不會再刷新,而是其他的東西,這可能會讓用戶感到不安。 – akonsu 2013-05-10 05:25:57