2014-04-02 77 views
1

我設置UI路由器是這樣的:刷新頁面上相同的URL點擊時沒有哈希

$stateProvider 
    .state 'home', 
    url: '/' 
    template: JST['angular/templates/user/dashboard'] 
    controller: 'userDashboardCtrl' 
    .state 'home.list', 
    url: 'list' 
    views: 
     'content': 
     template: JST['angular/templates/user/imageList'] 
     controller: 'imageListCtrl' 
     resolve: 
      favoriteOnly: -> false 
    .state 'home.favorite', 
    url: 'favorite' 
    views: 
     'content': 
     template: JST['angular/templates/user/imageList'] 
     controller: 'imageListCtrl' 
     resolve: 
      favoriteOnly: -> true 

,我最後不得不像/users/dashboard#/list的URL,現在我已經在頁面此鏈接:

<a class="navbar-brand" href="https://stackoverflow.com/users/dashboard">&nbsp;</a> 

但是,點擊該鏈接不會重新加載頁面,它只是刪除由UI路由器重置的哈希值。

有沒有辦法讓瀏覽器重新加載頁面,因爲當我手動刪除哈希並按回車?

+0

你爲什麼要這麼做?更好的用戶體驗肯定是用戶不必等待整頁重新加載? –

+0

由於在某些情況下,頁面內容會發生變化,並且我認爲用戶希望返回到初始狀態,否則我應該將每個內容更改映射到不同的URL – alex88

回答

1

可以使用$window.reload()刷新頁面(您需要將$window注入到控制器中)。

但是,一般來說,如果您只是刷新頁面,您的應用程序處於不同的狀態是不好的做法。 Angular應用程序旨在成爲單頁網絡應用程序。他們應該只有一個整頁加載,並且該URL應該代表應用程序的狀態(以某種合理的分辨率)。

因此,您不應該嘗試重新加載頁面,而應該考慮您的應用如何重置自己以達到用戶期望的效果而不是此頁面會刷新。

相關問題